for(JsonElement jsonElement : mytag_list){
final MyTagItem myTagItem = new MyTagItem(jsonElement.getAsJsonObject());
try {
Glide.with(getActivity())
.load(myTagItem.video_thumbnail)
.asBitmap()
.error(R.drawable.icon_facebook)
.into(new SimpleTarget<Bitmap>() {
@Override
public void onLoadFailed(Exception e, Drawable errorDrawable) {
myTagItem.imageBitmap = ((BitmapDrawable) errorDrawable).getBitmap();
myTagItems.add(myTagItem);
imageReady(appCompatDialog);
}
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
myTagItem.imageBitmap = resource;
myTagItems.add(myTagItem);
imageReady(appCompatDialog);
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
제가 지금 위와같이 처리를하면서 생각해보니 이미지가 받아오는 순서대로 리스트에 넣는거라
서버에서 가져온 리스트와 순서가 바뀌더라구요 그래서
해결방법으로 미리 값을 넣어두고 i에 값에 맞춰서 값을 넣으면 되겠다 싶어서
for(int i = 0; i < mytag_list.size();i++){
final MyTagItem myTagItem = new MyTagItem(mytag_list.get(i).getAsJsonObject());
myTagItems.add(myTagItem);
try {
final int finalI = i;
Glide.with(getActivity())
.load(myTagItem.video_thumbnail)
.asBitmap()
.error(R.drawable.icon_facebook)
.into(new SimpleTarget<Bitmap>() {
@Override
public void onLoadFailed(Exception e, Drawable errorDrawable) {
myTagItems.get(finalI).imageBitmap = ((BitmapDrawable) errorDrawable).getBitmap();
imageReady(appCompatDialog);
}
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
myTagItems.get(finalI).imageBitmap = resource;
imageReady(appCompatDialog);
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
이렇게 바꿧는데 이것보다 더 좋은방법이 있을까여??