android imageview 设置网络图片,ImageView加载网络图片
android網絡加載圖片框架Android-Universal-Image-Loader功能非常強大,其開源地址https://github.com/nostra13/Android-Universal-Image-Loader,講解非常地詳細,今天我要貼下工作中用到的利用這個框架加載網絡圖片并在ImageView控件中顯示出來。
第一步當然是把相應的jar包導入到我們的項目中去,
第二步就是配置ImageLoader參數,
第三步就是直接使用。
private ImageLoader imageLoader;
private ImageLoadingListener animateFirstListener;//這個監聽主要是監聽加載過程中的各狀態
private DisplayImageOptions options;//圖片展示配置
獲取ImageLoader對象很簡單,就一句話:
imageLoader = ImageLoader.getInstance();
然后配置options:
options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.icon_default_avater) //加載中的默認圖片
.showImageForEmptyUri(R.drawable.icon_default_avater) // 加載錯誤的默認圖片
.showImageOnFail(R.drawable.icon_default_avater) // 加載失敗時的默認圖片
.cacheInMemory(true)// 開啟內存緩存
.cacheOnDisk(true) // 開啟硬盤緩存
.resetViewBeforeLoading(false).build();
第一種加載方式(參數uri:圖片所在地址,imageView:顯示圖片的對應控件ImageVeiw,options:就是剛剛我們配置的參數):
ImageLoader.getInstance().displayImage(String uri, ImageView imageView, DisplayImageOptions options);
第二種方式:
我們設置animateFirstListener,利用animateFirstListener來加載圖片:
自定義圖片緩存:
class MyDisplayListener extends SimpleImageLoadingListener {
static final List displayedImages = Collections.synchronizedList(new LinkedList());
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
if (loadedImage != null) {
ImageView imageView = (ImageView) view;
boolean firstDisplay = !displayedImages.contains(imageUri);
if (firstDisplay) {
FadeInBitmapDisplayer.animate(imageView, 500);
displayedImages.add(imageUri);
}
}
}
}
然后取得:
animateFirstListener = new MyDisplayListener();//
加載圖片(參數uri:圖片所在地址,imageView:顯示圖片的對應控件ImageVeiw):
imageLoader.displayImage(uri, imageView, animateFirstListener);
開源框架中的ImageLoader類中定義了多種加載網絡圖片的方式:
如github介紹中的:
imageLoader.displayImage(imageUri, imageView, options, new ImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
...
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
...
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
...
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
...
}
}, new ImageLoadingProgressListener() {
@Override
public void onProgressUpdate(String imageUri, View view, int current, int total) {
...
}
}); 更多的可以看源碼!
總結
以上是生活随笔為你收集整理的android imageview 设置网络图片,ImageView加载网络图片的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: git如何查看缓存区文件内容_详解Git
- 下一篇: java新建对象校验_验证某个对象是否是