在不同位置android重现相同的椭圆形

时间:2015-01-24 01:12:26

标签: java android

我想在用户触摸的位置创建一个椭圆形,但是当用户触摸不同的位置时,我希望保留旧的椭圆形并显示新的椭圆形。旧的椭圆形只是切换到新的位置,旧的椭圆形不在旧的位置。你如何展示它们?

我能想到的唯一方法是制作一个arraylist来存储椭圆并制作一个循环来绘制arraylist中的每个不同的椭圆:

Arraylist<RectF> al = new ArrayList<>();
al.add(new RectF(x, y, x+rad, y+rad));
for(int i=0;i<al.size();i++){
    canvas.drawOval(al.get(i), paint);
}

这种方法似乎效率低下。有一个更好的方法吗? 我测试了它,它工作。这有点慢。

1 个答案:

答案 0 :(得分:0)

我认为你可以先创建一个位图。然后每次创建一个新的椭圆,只需在位图上绘制该椭圆。通过这种方式,您无需重绘旧椭圆。

Canvas canvas = new Canvas(mBitmap);// reuse the bitmap each time a new oval is created.
canvas.drawOval(al.get('index of the new oval'), paint);