我需要为游戏快速(以毫秒为单位)更改图像。我使用ImageViews和setImageResource()将图像设置为ImageViews。下面是记录操作执行时间的日志。
代码:
for (int i = 0; i < 9; i++) {
buttons[i].setImageResource(current_set[i + 2]);
buttons[i].setTag(current_set[i + 2]);
buttons[i].requestLayout();
}
上面提到的持续时间是执行相同操作的16个方法调用所花费的时间(为9个ImageView设置图像)。
为什么模式中同一组9张图片的持续时间完全不同于setImageResource()9次(每次方法调用)?
你能否建议其他技术来减少“setImagResource()”所带来的时间消耗?
非常感谢。
答案 0 :(得分:0)
我认为您可以将图像添加到LevelListDrawable,为按钮设置此drawable,然后使用setLevel()为按钮设置图像,因此不需要requestLayout()。
for (int i = 0; i < 9; i++) {
buttons[i].setImageLevel(current_set[i + 2]); // current_set now store image level
buttons[i].setTag(current_set[i + 2]);
//buttons[i].requestLayout();
}