【问题标题】:RoundRectShape not drawingRoundRectShape 不绘图
【发布时间】:2018-01-09 15:21:15
【问题描述】:

我正在尝试在 Canvas 对象上绘制圆角矩形,但没有显示任何内容。我像这样初始化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?因为我很困惑我应该怎么做。

【问题讨论】:

    标签: android canvas android-shapedrawable


    【解决方案1】:

    来自documentation for RoundRectShape

    void draw (Canvas canvas, Paint paint)

    在调用此之前,您必须调用resize(float, float)

    如果您不调用resize(),则您的形状没有尺寸。

    【讨论】:

    • 是的,这行得通:)。有什么方法可以设置形状的位置吗?因为此刻它正好在拐角处的 0,0 处。
    • @Ryan 不是 100% 确定,因为我没有尝试过,但看起来你可以使用 RoundRectShape 构造一个新的 ShapeDrawable,然后在新的可绘制对象上调用 setBounds(),然后将该可绘制对象绘制到画布上。
    • 这个设置了位置,但是因为ShapeDrawable绘制函数没有Paint参数,它会从形状中移除等等的颜色
    • 没关系。我设法通过完全省略使用RoundRectShape 对象并改用Path 来解决问题。最终让事情变得更容易
    猜你喜欢
    • 2017-10-13
    • 1970-01-01
    • 2016-10-04
    • 2011-02-24
    • 2017-05-12
    • 2012-12-18
    • 2014-04-23
    • 2018-09-06
    • 1970-01-01
    相关资源
    最近更新 更多