我有这个代码:
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;
也许它不叫“优化”,我不得不说“可读性”
对不起,我的英语不好