2017-08-02 100 views
0

我想绘制一个Canvas对象的圆角矩形,但没有任何显示。我初始化RoundRectShape像这样:RoundRectShape没有绘制

test = new RoundRectShape(new float[]{r, r, r, r, r, r, r, r}, new RectF(100, 100, 100, 100), null); 

我随后致电test.draw(canvas),但没有显示出来。为什么它没有绘制,我是否正确创建RoundRectShape?因为我对我应该怎么做很困惑。

回答

1

documentation for RoundRectShape

void draw (Canvas canvas, Paint paint)

之前调用这个,你必须调用resize(float, float)

如果你不叫resize(),你的形状没有尺寸。

+0

是的,这工作:)。有没有什么方法可以设置形状的位置?因为目前它只是在角落0,0。 – Ryan

+0

@Ryan不是100%确定,因为我没有尝试过,但它看起来像你可以使用你的'RoundRectShape'构造一个新的'ShapeDrawable',然后在这个新的drawable上调用'setBounds()',然后绘制该drawable到画布。 –

+0

这设置了位置,但是因为'ShapeDrawable'绘图函数没有'Paint'参数,所以它从形状 – Ryan