ListView에있는 galleryViews에 이미지를 표시하려고합니다. 서버에서 SDCard로 이미지를 다운로드 한 다음 표시합니다. 이미지가 없으면 캐시에서 이미지를 확인한 다음 sdcard에서 이미지를로드합니다. 사용자가 텍스트와 활동을 보여주는 평균 시간 스피에 sdcard에하는 내가 서버에서 이미지를 다운로드하고 저장하고 처음으로 응용 프로그램을 시작Async SDCard의 Listview 갤러리보기에서 이미지로드
만
이미지에없는 경우 내가 원하는sdcard 이미지를 다운로드 한 후 이미지를 다운로드하자 마자 바로 이미지를 표시해야합니다.
public class AsyncImageLoader {
private boolean isImageView;
private final LinkedHashMap<String, Bitmap> cache =
new LinkedHashMap<String, Bitmap>(60, (float) 1.0, true);
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
LoadImageFromSdCard loadImage = (LoadImageFromSdCard) msg.obj;
if (isImageView) {
loadImage.imageView.setImage(loadImage.bmp);
} else {
Thread thread = new Thread(new LoadImageFromSdCard(loadImage.uri, loadImage.imageView));
try {
Log.i("AsyncImageLoader", "SECOND THREAD STARTED");
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
thread.start();
}
}
};
public Bitmap loadImage(String uri,
ImageTextComboControl imageView) {
if (cache.containsKey(uri)) {
return cache.get(uri);
} else {
handler.post(new LoadImageFromSdCard(uri, imageView));
}
return null;
}
private class LoadImageFromSdCard implements Runnable {
String uri;
ImageTextComboControl imageView;
ImageView image;
Bitmap bmp = null;
public LoadImageFromSdCard(String uri, ImageTextComboControl imageView) {
this.uri = uri;
this.imageView = imageView;
}
public void run() {
FileInputStream fis;
try {
fis = new FileInputStream(new File(uri));
} catch (FileNotFoundException e) {
e.printStackTrace();
return;
}
bmp = BitmapFactory.decodeStream(fis);
if (imageView != null) {
isImageView = true;
cache.put(uri, bmp);
Message message = new Message();
message.obj = this;
handler.sendMessage(message);
}
}
}
}
고맙습니다
와우 확실한 자신의 매우 유용한 정보 덕분에 aloooooooooot. – raju