Android onDraw方法没有把我投入的所有东西都画出来
我已经创建了一个自定义视图类,用于我正在处理的项目中。简单地说,我正在显示一个图像,然后在原始图像的顶部添加图像(当前通过单击图像,但这不是最终结果) 我的自定义视图中有以下两种方法:Android onDraw方法没有把我投入的所有东西都画出来,android,android-canvas,ondraw,Android,Android Canvas,Ondraw,我已经创建了一个自定义视图类,用于我正在处理的项目中。简单地说,我正在显示一个图像,然后在原始图像的顶部添加图像(当前通过单击图像,但这不是最终结果) 我的自定义视图中有以下两种方法: protected void onDraw(Canvas canvas) { super.onDraw(canvas); for (Drawable d : drawableList) { d.draw(canvas); } } public void AddP
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
for (Drawable d : drawableList)
{
d.draw(canvas);
}
}
public void AddPoint(float x, float y)
{
Drawable tempDrawable = pin;
tempDrawable.setBounds((int)x, (int)y, (int)x + 50, (int)y + 50);
drawableList.add(tempDrawable);
invalidate();
}
AddPoint()
方法在OnTouchListener
中调用,并传递触摸事件的坐标
它当前的工作方式是显示主图像,但只显示我单击的最新图像,以前的图像就消失了
有人知道我做错了什么吗?我已经知道我做错了什么
代码行:
Drawable tempDrawable = pin;
我改为:
Drawable tempDrawable = mainRes.getDrawable(R.drawable.pin);
我从自定义视图类中编写的init(Context-Context)方法中获得了mainRes。您在子类化哪个类?@Blackbelt只是视图类。我不确定这是否正确,但是…视图可见吗?它是添加到容器中的吗?@Blackbelt是的,当我在手机上运行程序时,会显示大图像,但只有添加到ArrayList的最新“pin”会显示在该图像的顶部。这是一个简单的for each循环,它不应该绘制ArrayList中的每个项目吗?啊,明白了。如果要绘制多个管脚,则需要多个管脚。您只是在更改其边界,但可绘制的边界始终是相同的