Imageloader

来源:互联网 发布:p5.js使用手册 编辑:程序博客网 时间:2024/06/11 08:46

** 添加权限android:name=”android.permission.INTERNET”

android:name=”.MApp”

添加jar包universal-image-loader-1.9.3-with-sources
**
activity_main

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.liuxingdou.imageloaderdemo.MainActivity">    <ListView        android:layout_height="match_parent"        android:layout_width="match_parent"        android:id="@+id/lv"> </ListView></android.support.constraint.ConstraintLayout>

item

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent">    <ImageView        android:layout_height="100dp"        android:layout_width="100dp"        android:id="@+id/iv"/></LinearLayout>

MainActivity

package com.bwie.imageloaderdemo2;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.ListView;import com.nostra13.universalimageloader.core.ImageLoader;public class MainActivity extends AppCompatActivity {    private ListView lv;    private ImageLoader imageLoaderInstance;    String imageUrl = "http://img.my.csdn.net/uploads/201407/26/1406383213_4418.jpg";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        lv = (ListView) findViewById(R.id.lv);        lv.setAdapter(new MAdapter());        imageLoaderInstance = ImageLoader.getInstance();    }    class MAdapter extends BaseAdapter {        @Override        public int getCount() {            return 10;        }        @Override        public Object getItem(int i) {            return null;        }        @Override        public long getItemId(int i) {            return i;        }        @Override        public View getView(int i, View view, ViewGroup viewGroup) {            View itemView = View.inflate(MainActivity.this, R.layout.item_list, null);            ImageView iv = itemView.findViewById(R.id.iv);            imageLoaderInstance.displayImage(imageUrl, iv, ImageLoaderUtils_circle.getDisplayImageOption());            return itemView;        }    }}

ImageLoaderUtils_circle

package com.bwie.imageloaderdemo2;import android.graphics.Bitmap;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.assist.ImageScaleType;import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;/** * author:Created by WangZhiQiang on 2017-10-18. */public class ImageLoaderUtils_circle {    public static DisplayImageOptions getDisplayImageOption() {        DisplayImageOptions options = new DisplayImageOptions.Builder()                .showImageOnLoading(R.mipmap.ic_launcher) //设置图片在下载期间显示的图片                .showImageForEmptyUri(R.mipmap.ic_launcher)//设置图片Uri为空或是错误的时候显示的图片                .showImageOnFail(R.mipmap.ic_launcher)  //设置图片加载/解码过程中错误时候显示的图片                .cacheInMemory(true)//设置下载的图片是否缓存在内存中                .cacheOnDisk(true)                .considerExifParams(true)  //是否考虑JPEG图像EXIF参数(旋转,翻转)                .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)//设置图片以如何的编码方式显示                .bitmapConfig(Bitmap.Config.RGB_565)//设置图片的解码类型//                .displayer(new RoundedBitmapDisplayer(5))//是否设置为圆角,弧度为多少//                .displayer(new FadeInBitmapDisplayer(100))//是否图片加载好后渐入的动画时间                .build();//构建完成        return options;    }}

MApp

package com.bwie.imageloaderdemo2;import android.app.Application;import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator;import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;import com.nostra13.universalimageloader.core.assist.QueueProcessingType;/** * author:Created by WangZhiQiang on 2017-10-10. * 系统启动 会先运行这个MApp,所以我们在这里进行初始化 框架 组件等等; */public class MApp extends Application{    @Override    public void onCreate() {        super.onCreate();        //初始化组件,链式开发思想,整个框架的参数初始化配置        ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this)                .memoryCacheExtraOptions(480, 800) // default = device screen dimensions 内存缓存文件的最大长宽                .diskCacheExtraOptions(480, 800, null)  // 本地缓存的详细信息(缓存的最大长宽),最好不要设置这个                .tasksProcessingOrder(QueueProcessingType.FIFO) // default                .denyCacheImageMultipleSizesInMemory()                .memoryCache(new LruMemoryCache(2 * 1024 * 1024)) //可以通过自己的内存缓存实现                .memoryCacheSize(2 * 1024 * 1024)  // 内存缓存的最大值                .memoryCacheSizePercentage(13) // default                .diskCacheSize(50 * 1024 * 1024) // 50 Mb sd卡(本地)缓存的最大值                .diskCacheFileCount(100)  // 可以缓存的文件数量                // default为使用HASHCODE对UIL进行加密命名, 还可以用MD5(new Md5FileNameGenerator())加密                .diskCacheFileNameGenerator(new HashCodeFileNameGenerator())                .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default                .writeDebugLogs() // 打印debug log                .build();        ImageLoader.getInstance().init(configuration);    }}

这里写图片描述