[英]how to load image with Universal ImageLoader without displaying
我正在嘗試做類似這樣的事情: Android Map api v2自定義標記與ImageView但我堅持使用圖像加載器。
試:
Bitmap bmImg = imageLoader.loadImageSync(url);
LogCat給了我
04-13 14:11:44.953: E/ImageLoader(18542): android.os.NetworkOnMainThreadException
這是我的代碼。 我有一個ArrayList相機,需要所有信息(titrle,position,url等)。
public void drawPicsOnMap()
{
String title = null;
String place = null;
for (int i = 0; i<camera.size(); i++)
{
Bitmap.Config conf = Bitmap.Config.ARGB_8888;
Bitmap bmp = Bitmap.createBitmap(80, 80, conf);
Canvas canvas = new Canvas(bmp);
// paint defines the text color,
// stroke width, size
Paint color = new Paint();
color.setTextSize(35);
color.setColor(Color.BLACK);
Camera cam = camera.get(i);
LatLng coord = new LatLng(cam.lat, cam.lon);
title = Integer.toString(cam.id);
place = cam.place;
String url = cam.img;
Bitmap bmImg = imageLoader.loadImageSync(url);
//modify canvas
canvas.drawBitmap(bmImg, 0,0, color);
canvas.drawText(title, 30, 40, color);
Marker mark = map.addMarker(new MarkerOptions()
.position(coord)
.title(title)
.snippet(place)
.icon(BitmapDescriptorFactory
.fromBitmap(bmp)));
markers.put(mark.getId(), url);
}
}
試試這個:
imageLoader.loadImage(url, new SimpleImageLoadingListener(){
@Override
public void onLoadingComplete(String imageUri, View view,
Bitmap loadedImage) {
super.onLoadingComplete(imageUri, view, loadedImage);
//write your code here to use loadedImage
}
});
這里onLoadingComplete將在UI線程上調用,這使得線程安全
您無法在主線程上進行任何聯網。 請參閱說明 。 UIL通常在調用displayImage時為您創建線程和東西,但loadImageSync不會。 創建一個線程並加載它或使用AsynTask。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.