看板 AndroidDev 關於我們 聯絡資訊
大家好 經過各位高高手的提點之後, 目前只用的方法,我試過之後似乎可以了? 再請各位提點這樣的方法是否還是會有問題 首先在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
lovelycateye:為何要讓已經滑出去又還未執行到的 Task 執行完呢? 06/16 15:58