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

看板AndroidDev作者 (假面超人)時間11年前 (2014/06/16 15:49), 11年前編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/3 (看更多)
大家好 經過各位高高手的提點之後, 目前只用的方法,我試過之後似乎可以了? 再請各位提點這樣的方法是否還是會有問題 首先在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
為何要讓已經滑出去又還未執行到的 Task 執行完呢?
06/16 15:58, 1F
文章代碼(AID): #1Jdg5_eK (AndroidDev)
文章代碼(AID): #1Jdg5_eK (AndroidDev)