我试图做这样的事情: Android Map api v2 Custom marker with ImageView 但我坚持使用图像加载器。如何使用通用ImageLoader加载图像而不显示
尝试:
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);
}
}
我做了位图bmImg = null ;并调用imageLoader.loadImage()你写的内部onLoadingComplete我写了bmImg = loadedImage。现在LogCat告诉我java.lang.NullPointerException –
你正在使用bmImg之前onLoadingComplete函数被调用 – Shahidul
记住onLoadingComplete被称为每当图像下载完成,因为下载图片需要花费一些时间,所以在onLoadingComplete被调用之前,你无法获得并使用Bitmap – Shahidul