Re: [問題] GridView BaseAdapter 異步讀圖順序錯誤

作者: fake01 (假面超人)   2014-06-16 15:49:15
大家好
經過各位高高手的提點之後,
目前只用的方法,我試過之後似乎可以了?
再請各位提點這樣的方法是否還是會有問題
首先在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 ,這樣快很多。
作者: lovelycateye (我還想要更多力量)   2014-06-16 15:58:00
為何要讓已經滑出去又還未執行到的 Task 執行完呢?

Links booklink

Contact Us: admin [ a t ] ucptt.com