onDraw方法没有绘制我放入的所有内容

时间:2016-03-18 14:47:38

标签: android android-canvas ondraw

我创建了一个自定义视图类,用于我正在处理的项目中。简而言之,我正在显示一个图像,然后在原始图像上添加图像(目前通过点击图像,但这不是最终的)。

我的自定义视图中有以下两种方法:

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方法,并传递touch event的坐标。

它目前的工作方式是显示主图像,但只会显示我点击的最新图像,之前的图像会消失。

有人知道我在这里做错了吗?

1 个答案:

答案 0 :(得分:0)

我已经弄明白我做错了什么。

代码行:

Drawable tempDrawable = pin;

我改为:

Drawable tempDrawable = mainRes.getDrawable(R.drawable.pin);

我从自定义View类中编写的init(Context context)方法获得了mainRes。