首页 > 解决方案 > Android画布绘制顺序

问题描述

我想在我的圆形可绘制对象周围画一个边框。

我有这个代码:

  public void draw(Canvas canvas) {
    myDrawable.draw(canvas);
    canvas.drawArc(toHighlightBounds, 0F, 360F, /* useCenter= */ false, borderPaint);
}

如果我更改行顺序,输出怎么会相似?

  public void draw(Canvas canvas) {
    canvas.drawArc(toHighlightBounds, 0F, 360F, /* useCenter= */ false, borderPaint);
    myDrawable.draw(canvas);
}

顺序不应该决定z轴吗?什么画在另一个之上?

标签: androidandroid-canvasdrawandroid-drawablez-axis

解决方案


我不确定,但我认为这与变量的工作方式有关。

例如,假设我创建了一个包含可绘制对象的数据类。

然后我将drawable设置为图像视图

myImageView.setImageDrawable(myClassObject.drawable)

有趣的部分来了,如果我现在将对象的可绘制对象更改为其他内容,它也会在图像视图中更改。

我不确定这是否是它,如果它是一个简单的解释,但这是我的猜测


推荐阅读