我正在将View
-class 扩展到我所说MyView
的 . (我添加了一些属性,这些属性基本上说明了在对象上绘制的内容,并处理了这个)
我每隔几毫秒移动一次此类的对象,这很好用。我this.layout(left, top, right, bottom);
用来移动 MyView。但似乎每次移动视图时,都会重新绘制(调用 onDraw)。这是必要的吗?的内容在MyView
移动时不会改变。事实上,内容永远不会改变 - 它以一种方式创建,四处移动,然后被销毁。
我正在使用onDraw
它,因为每次创建它时,我都希望它在其上绘制一些文本或一些数字。我曾经扩展ImageView
和使用过setImageResource
,但我意识到我想要的不仅仅是不同的图像,并且为这个对象可能感觉不对的各种文本和数字内容创建图像。
我的对象可以接收 onTouch 事件也很重要,这在今天可以正常工作。
我的 onDraw 方法目前包含:(这会改变,当我让它不再重绘时)
@Override
public void onDraw(Canvas canvas) {
Paint p = new Paint();
p.setARGB(255, 0, 255, 255);
canvas.drawRect(0, 0, 32, 32, p);
}
所以问题是:我可以有一个在创建时动态绘制的对象,有可能接收触摸事件(我可以用另一种方式解决这个问题,所以它不是很重要),并且在不重新绘制的情况下移动它(最重要) ?
原因是:我将拥有这个类的几个对象(可能是 100+),并且我相信通过一直重新绘制对象会减慢应用程序的速度。
编辑:如果视图不可能,我可以使用任何替代方法吗?