Re: [問題] GridView BaseAdapter 異步讀圖順序錯誤
大家好
經過各位高高手的提點之後,
目前只用的方法,我試過之後似乎可以了?
再請各位提點這樣的方法是否還是會有問題
首先在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 ,這樣快很多。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.138.152.10
※ 文章網址: http://www.ptt.cc/bbs/AndroidDev/M.1402904959.A.A14.html
※ 編輯: fake01 (140.138.152.10), 06/16/2014 15:50:00
→
06/16 15:58, , 1F
06/16 15:58, 1F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 2 之 3 篇):