如何使用Universal ImageLoader加载图像而不显示
我正在尝试做这样的事情: 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。
- Android – 如何以编程方式创建FAB?
- Android Studio:将项目添加为库
- android java解析日期来自字符串
- C ++ ifstream.getline()明显慢于Java的BufferedReader.readLine()?
- java.lang.IllegalArgumentException:at android.view.Surface.unlockCanvasAndPost(Native Method)
- 如何在Android上建立异步URL连接?
- 从texturepacker的纹理在LibGDX
- Android加密API不会为AES生成安全IV
- Smack 4.1在回复超时内无响应