您的位置:首页 > 理论基础 > 计算机网络

网络请求图片ImageLoader

2017-10-09 19:50 141 查看
1.MApp方法中的代码操作

package com.bwie.imageloaderdemo;

import android.app.Application;

import android.util.Log;

import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;

import com.nostra13.universalimageloader.cache.memory.impl.UsingFreqLimitedMemoryCache;

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-09.

 * 全局的上下文, app已启动运行的第一个上下文,也是全局的上下文

 * 配置一些 全局的 工具, 框架,等等(代码统计, 联网框架)

 * 当整个程序退出, 这个上下文才消亡;

 *

 * 需要再清单文件中配置Application这个类--在资源文件Application标签下 android:name=".MApp"

 */

public class MApp extends Application {

    private String tag = "MApp";

    @Override

    public void onCreate() {

        super.onCreate();

        Log.e(tag, "执行了MApp的  onCreate: " );

        //初始化imageLoader框架

        ImageLoaderConfiguration config = new ImageLoaderConfiguration

                .Builder(this)

                .memoryCacheExtraOptions(480, 800) // max width, max height,即保存的每个缓存文件的最大长宽

                .threadPoolSize(5)//线程池内加载的数量

                .threadPriority(Thread.NORM_PRIORITY - 2)

                .denyCacheImageMultipleSizesInMemory()

                .memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)) // You can pass your own memory cache implementation/你可以通过自己的内存缓存实现

                .memoryCacheSize(2 * 1024 * 1024)

                .discCacheSize(50 * 1024 * 1024)

                .discCacheFileNameGenerator(new Md5FileNameGenerator())//将保存的时候的URI名称用MD5 加密

                .tasksProcessingOrder(QueueProcessingType.LIFO)

                .discCacheFileCount(100) //缓存的文件数量

                .defaultDisplayImageOptions(DisplayImageOptions.createSimple())

                .writeDebugLogs() // Remove for release app

                .build();//开始构建

        // Initialize ImageLoader with configuration.

        ImageLoader.getInstance().init(config);//全局初始化此配置

    }

}

2.主方法的操作

package com.bwie.imageloaderdemo;

import android.graphics.Bitmap;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.widget.ImageView;

import com.nostra13.universalimageloader.core.DisplayImageOptions;

import com.nostra13.universalimageloader.core.ImageLoader;

import com.nostra13.universalimageloader.core.assist.ImageScaleType;

public class MainActivity extends AppCompatActivity {

    private ImageView iv;

    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);

        iv = (ImageView) findViewById(R.id.iv);

        //使用图片框架要先得到它的实例

        ImageLoader imageLoader = ImageLoader.getInstance();

        //图片的显示配置,这个是图片显示的一些配置,也可以不配,底层有默认值

        DisplayImageOptions options = new DisplayImageOptions.Builder()

                .showImageOnLoading(R.mipmap.ic_launcher) // 设置图片下载期间显示的图片

                .showImageForEmptyUri(R.mipmap.ic_launcher) // 设置图片Uri为空或是错误的时候显示的图片

                .showImageOnFail(R.mipmap.ic_launcher) // 设置图片加载或解码过程中发生错误显示的图片

                .resetViewBeforeLoading(false)  // default 设置图片在加载前是否重置、复位

                .delayBeforeLoading(1000)  // 下载前的延迟时间

                .cacheInMemory(false) // default  设置下载的图片是否缓存在内存中

                .cacheOnDisk(false) // default  设置下载的图片是否缓存在SD卡中

                .considerExifParams(false) // default

                .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) // default 设置图片以如何的编码方式显示

                .bitmapConfig(Bitmap.Config.ARGB_8888) // default 设置图片的解码类型

                .build();

        //把网络图片请求过来,并显示到控件上;

        imageLoader.displayImage(imageUrl, iv,options);

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: