我通过扩展View创建了一个自定义视图。
public class CustomView extends View {
private Canvas canvas2;
private Bitmap backingBitmap;
在CustomView的构造函数中,我有以下代码:
backingBitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
canvas2 = new Canvas(backingBitmap);
在 onDraw 方法中,我有以下代码:
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawCircle(100, 100, 50, paint);
canvas2.drawCircle(0, 0, 10, paint);
}
我能看到使用“canvas”对象绘制的圆形,但无法看到使用“canvas2”对象绘制的圆形。我的理解是只需要创建一个可变位图并使其成为画布的后备位图即可。有人能指出这里有什么问题吗?
额外问题:自定义画布对象在屏幕上创建在哪里?如何设置它的位置?
创建多个画布的原因:我有一个SurfaceView,它包含整个屏幕。因此,基本上它的画布覆盖了整个屏幕。我需要在屏幕内创建一个类似窗口的矩形,并且必须在该窗口的边界内进行动画处理。基本上,如果您在此窗口中平移图像,则不应在窗口的边界外绘制图像。
干杯!
onDraw()
方法提供给您canvas
引用。那么您的表面如何知道您已经创建了另一个画布对象...请考虑一下这个问题。 - Gru