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