私はこのコードを持っています:
private Bitmap disk1, disk2, disk3;
private ArrayList<Bitmap> bitmapArray = new ArrayList<Bitmap>();
......
disk1 = BitmapFactory.decodeResource(getResources(), R.drawable.disk01);
disk1 = Bitmap.createBitmap(disk1, 0, 0, origW, origH, matrix, true);
disk2 = BitmapFactory.decodeResource(getResources(), R.drawable.disk02);
disk2 = Bitmap.createBitmap(disk2, 0, 0, origW, origH, matrix, true);
disk3 = BitmapFactory.decodeResource(getResources(), R.drawable.disk03);
disk3 = Bitmap.createBitmap(disk3, 0, 0, origW, origH, matrix, true);
bitmapArray.add(disk1);
bitmapArray.add(disk2);
bitmapArray.add(disk3);
コードを最適化するために、ビットマップなしで (for ループを使用して) この構成を使用できると思います。
bitmapArray.add(Bitmap.createBitmap(BitmapFactory.decodeResource(getResources(),
R.drawable.disk01), 0, 0, origW, origH, matrix, true));
しかし、私は少し混乱しています: メソッドの結果を保存するか、bitmapArray.get(0)を取得しようとするたびにそれらのメソッドを呼び出しますか?
ありがとう
更新: ハンドラー コールバックの後に配列を使用して、キャンバス上のアニメーションを変更します:
Bitmap item;
.......
public Handler.Callback hc = new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case 1:
if (ai == 8)
ai = 0;
item = bitmapArray.get(ai);
++ai;
break;
多分それは「最適化」とは呼ばず、「可読性」と言わざるを得ませんでした
私の悪い英語でごめんなさい