Only the original thread that created a view hierarchy can touch its views.
때문에 미치겠습니다..
RunOnUIThread, Post,PostDelayed,Handdler sending post msg 등을 모두 해보았지만...계속 같은 결과만 나오니 미치겠네요
당최 어디가 문제인건지 감을 못잡겠습니다. 간헐적으로 10번 리프레쉬 하면 3~2회 정도만 나타나니 환장하겠습니다
고수님들 도움이 필요합니다.
new Thread(new Runnable() {
@Override
public void run() {
try {
final String imageUrl = album.imageUrl;
final String imggesUrl = album.inAppDescription;
URL url = new URL(imageUrl);
URL urls = new URL(imggesUrl);
URLConnection conn = url.openConnection();
URLConnection conns = urls.openConnection();
InputStream is = conn.getInputStream();
InputStream iss = conns.getInputStream();
// final Bitmap bitmap = BitmapFactory.decodeStream(is);
//final Bitmap bitmap1 = BitmapFactory.decodeStream(iss);
final Bitmap bitmap;// = BitmapFactory.decodeStream(is);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 2;
bitmap = BitmapFactory.decodeStream(is, null, options);
//
final Bitmap bitmap1;
BitmapFactory.Options options1 = new BitmapFactory.Options();
options1.inSampleSize = 2;
bitmap1 = BitmapFactory.decodeStream(iss, null, options1);
//// mHandler.post(mUpdateResults);
handler.post(new Runnable() {
@Override
public void run() {
bitmapCache.put(imageUrl, bitmap);
bitmapCache.put(imggesUrl, bitmap1);
updateImage(position, bitmap,bitmap1);
progressBar.setVisibility(View.INVISIBLE);
}
});
} catch (Exception e) {
handler.post(new Runnable() {
@Override
public void run() {
Bitmap bitmap = getBrokenImage();
Bitmap bitmap1 = getBrokenImage();
updateImage(position, bitmap,bitmap1);
progressBar.setVisibility(View.INVISIBLE);
}
});
}
}
}).start();
}
}
private Bitmap getBrokenImage() {
if (this.brokenImage != null) {
return this.brokenImage;
}
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
this.brokenImage = bitmap;
return bitmap;
}
private void updateImage(int position, Bitmap bitmap,Bitmap bitmap1) {
int first = listView.getFirstVisiblePosition();
if (position < first) {
return;
}
int last = listView.getLastVisiblePosition();
if (position > last) {
return;
}
AlbumView albumView = (AlbumView) listView.getChildAt(position - first);
albumView.itemImage.setImageBitmap(bitmap);
albumView.detailImg.setImageBitmap(bitmap1);
}
private BaseAdapter adapter = new BaseAdapter() {
@Override
public int getCount() {
return albums.size();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Album album = albums.get(position);
AlbumView albumView = null;
if (convertView != null) {
albumView = (AlbumView)convertView;
} else {
albumView = new AlbumView(SettomgItemShop.this);
}
albumView.setAlbum(album, position);
return albumView;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
};
private String TAGS;