第三方图片加载ImageLoader

大笑好久没来自己的博客空间了!越来越懒!这两天在玩android studio 感觉还可以,顺便温习一下之前从网上看的小Demo。感觉还是有必要记一下吧。毕竟这个第三方图片加载控件不错,以后也能用上。好了先上一波代码



public class DemoLoaderApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        initLoaderImage(getApplicationContext());
    }
    //初始化DisplayImageOpations
    private static void initLoaderImage(Context context) {
        DisplayImageOptions mOptions = new DisplayImageOptions.Builder()
                .cacheOnDisc().cacheInMemory().build();
        ImageLoaderConfiguration mConfig = new ImageLoaderConfiguration.Builder(context)
                .defaultDisplayImageOptions(mOptions)
                .threadPriority(Thread.NORM_PRIORITY - 2)
                .denyCacheImageMultipleSizesInMemory()
                .diskCacheFileNameGenerator(new Md5FileNameGenerator())
                .tasksProcessingOrder(QueueProcessingType.LIFO).build();
        ImageLoader.getInstance().init(mConfig);
    }
}

AndroidManifest.xml中添加好Application和网络权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
    android:name=".DemoLoaderApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme" >
    <activity android:name=".MainActivity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

下面是主程序第一个activity

public class MainActivity extends AppCompatActivity {
    private ListView ImageviewList;
    private DisplayImageOptions imageOptions;
    private ImageLoader imageLoader;
    private String[] arr = new String[]{
            "http://t12.baidu.com/it/u=3892037522,4148855209&fm=59",
            "http://t12.baidu.com/it/u=176596478,1719464859&fm=59",
            "http://t10.baidu.com/it/u=2563391112,3174229346&fm=59",
            "http://t11.baidu.com/it/u=38767480,4056423661&fm=59",
            "http://t12.baidu.com/it/u=2188089986,1772099895&fm=59",
            "http://t10.baidu.com/it/u=4010714787,2970343447&fm=59",
            "http://t11.baidu.com/it/u=2520234337,3270250852&fm=59",
            "http://t10.baidu.com/it/u=2395220391,4053197141&fm=59",
            "http://imgsrc.baidu.com/forum/w%3D580/sign=9ca9a5a472c6a7efb926a82ecdfbafe9/9beed71373f08202211791444ffbfbedaa641b6c.jpg",};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.loader_activity_main);
        initView();
    }

    private void initView() {
        imageLoader = ImageLoader.getInstance();
        imageOptions = new DisplayImageOptions.Builder()
                .showImageOnLoading(R.drawable.ic_launcher)
                .showImageForEmptyUri(R.drawable.ic_launcher)
                .showImageOnFail(R.drawable.ic_launcher)
                .cacheInMemory(true).cacheOnDisk(true).considerExifParams(true)
                .bitmapConfig(Bitmap.Config.RGB_565).build();
        ImageviewList = (ListView) findViewById(R.id.ID_LOADER_IMAGE_LISTEVIEW);
        LoaderAdapter mAdapter = new LoaderAdapter(this, arr, imageOptions, imageLoader);
        ImageviewList.setAdapter(mAdapter);
    }

}

自定义适配器

public class LoaderAdapter extends BaseAdapter {
    private Context mContext;
    private String[] arr;
    private DisplayImageOptions mOpations;
    private ImageLoader mLoader;

    public LoaderAdapter(Context mContext, String[] arr, DisplayImageOptions mOpations, ImageLoader mLoader) {
        this.mContext = mContext;
        this.arr = arr;
        this.mOpations = mOpations;
        this.mLoader = mLoader;
    }

    @Override
    public int getCount() {
        return arr.length;
    }

    @Override
    public Object getItem(int position) {
        return position;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        HImageView hImageView;
        if (convertView == null) {
            convertView = LayoutInflater.from(mContext).inflate(R.layout.item_imageview_loader, null);
            hImageView = new HImageView();
            hImageView.imageView = (ImageView) convertView.findViewById(R.id.ID_ITEM_IMAGEVIEW);
            convertView.setTag(hImageView);
        } else {
            hImageView = (HImageView) convertView.getTag();
        }
        mLoader.displayImage(arr[position], hImageView.imageView, mOpations);
        return convertView;
    }

    private static class HImageView {
        private ImageView imageView;
    }
}

大概就是这样吧··很简单的一个Demo xml布局文件我就不上了··

http://download.csdn.net/detail/lostfine/9575668加个源码下载链接地址


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值