我有使用此代碼含有相同的位圖50個imageviews一個ArrayList:Android Java:太多的圖像?
for (int i = 0; i < 50; i++) {
ImageView imageView = new ImageView(getApplicationContext());
imageView.setImageResource(R.drawable.pic1);
imageView.setVisibility(ImageView.VISIBLE);
imageView.setScaleType(ScaleType.CENTER);
imageViews.add(imageView);
view.addView(imageView);
}
此代碼不會導致除了滯後當我移動每一個:
final Runnable bulletData2 = new Runnable(){
public void run(){
if(i=0;i<=50;i++){
movex = Math.cos((imageViews.get(i).getRotation() - 90) * Math.PI/180) * 32;
movey = Math.sin((imageViews.get(i).getRotation() - 90)* Math.PI/180) * 32;
imageViews.get(i).setX((float) (imageViews.get(i).getX() + movex));
imageViews.get(i).setY((float) (imageViews.get(i).getY() + movey));
}
handler2.postDelayed(this, 2);
}
};
位圖僅是6KB我嘗試了600字節版本的位圖,但它仍然滯後。
如果我將圖像視圖設置爲不可見,則不存在延遲,並且圖像重疊並且應用程序運行速度很快。
我已經嘗試添加硬件加速和largeheap,但我只看到一個細微的差異。
任何人都可以讓我知道我應該改變什麼嗎?
編輯:Imageviews是一個ArrayList,並查看是一個ViewGroup =我的FrameLayout
嘗試使用帶有Item的ListVew包含單個ImageView。 –
爲什麼計算movex和movey時,你甚至不使用它 –
你能解釋一下代碼Haresh嗎?我用它來動態改變它們的旋轉角度的圖像 – jwhite