大家好
經過各位高高手的提點之後,
目前只用的方法,我試過之後似乎可以了?
再請各位提點這樣的方法是否還是會有問題
首先在getView(....)
holder.ViewHolderImageView.setTag(position);
MyTaskParams mMyTaskParams=
new MyTaskParams(holder.ViewHolderImageView,position);
task = new loadJPG();
task.execute(mMyTaskParams);
// MyTaskParams 包含
// imageview = holder.ViewHoderImageView
// id = postion
進入AsynceTask
protected MyTaskParams doInBackground(MyTaskParams... params) {
bmp = ............... (Integer)params[0].imagivew.getTag())
//這時候 doInBackground 是使用 getTag來獲取 position
params[0].bitmap = bmp;
// 將產生的bmp 放入 class的 bitmap;
return params[0];
}
protected void onPostExecute(final MyTaskParams mMyTaskParams) {
//if就是比對position 和 getTag() ,從sky的指點猜的方法
if(mMyTaskParams.id ==(Integer)mMyTaskParams.imagivew.getTag())
{
mMyTaskParams.imagivew.setImageBitmap(
(Bitmap)mMyTaskParams.bitmap);
//在顯示剛剛class包入的bitmap
}
}
以上就可以正確的顯示,如果有任何問題
還請各位再提點。
謝謝大家
ps. 如果嫌reload每次都要產生一次bmp太慢的話
就用 hashmap 判斷key 是否已經產出過bmp ,這樣快很多。