使用Universal Image Loader显示drawable

时间:2014-06-13 09:41:00

标签: java android universal-image-loader

如何使用ImageLoader.displayImage()以编程方式显示一些drawable?

根据文件:

String imageUri = "drawable://" + R.drawable.image; // from drawables (only images, non-9patch)

这仅适用于资源绘图

编辑:我想做类似的事情:

Drawable drawable = ...
myImageView.setImageDrawable(drawable); // Using ImageLoader

2 个答案:

答案 0 :(得分:0)

if(url != null && url != "")
  loader.displayImage(URLProtocol.parseURL(url, false), image)
else
  image.setImageResource(R.drawable.yourdrawable)

如果您想使用ImageLoad插件显示本地drawable而不是URL图像,您只需检查您的URL是否存在,如果不存在,您只需将drawable设置为ImageView的图像。

答案 1 :(得分:0)

最好的解决方案是,如果您从该Drawable创建Bitmap,然后将其保存到文件中。

使用它来从Drawable获取位图:

Drawable yourDrawable;  
Bitmap bitmap = ((BitmapDrawable)yourDrawable).getBitmap();

从位图创建文件:

//create a file to write bitmap data
File f = File(context.getCacheDir(), filename);
f.createNewFile();

//Convert bitmap to byte array
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.PNG, 0 /*ignored for PNG*/, bos);
byte[] bitmapdata = bos.toByteArray();

//write the bytes in file
FileOutputStream fos = new FileOutputStream(f);
fos.write(bitmapdata);
fos.flush();
fos.close();

不要忘记明确许可:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

执行此操作后,您可以使用Universal Image Loader将文件加载到ImageView