指で描画するためのこの小さなサンプル コードを見つけました:
http://marakana.com/tutorials/android/2d-graphics-example.html
関連するコードの一部を次に示します。
List<Point> points = new ArrayList<Point>();
@Override
public void onDraw(Canvas canvas) {
for (Point point : points) {
canvas.drawCircle(point.x, point.y, 5, paint);
}
}
public boolean onTouch(View view, MotionEvent event) {
Point point = new Point();
point.x = event.getX();
point.y = event.getY();
points.add(point);
invalidate();
Log.d(TAG, "point: " + point);
return true;
}
私はそれを調べていて、ArrayListにポイントを追加し、ArrayListをループしていることを見ました。これは、これに対する非常に最適化されたアプローチではないようです。より良いアプローチはありますか、それともこれは良いアプローチですか?
私の Samsung GS3 でテストした後、画面全体を円のサイズ 20 で色付けしました。フルカラーに近づくほど、描画に時間がかかり、円の間隔が空いていきました。