刚入行,在学习android开发,所以算是新手入门,记录一下程序员小白的成长之路。
android图片加载分本地和网络图片,后者比较麻烦,需要使用到第三方的文件包,今天用到的则是大名鼎鼎的ImageLoader。需要5步:
1、先进行导包:在android项目下的libs文件中放入需要的包文件-universal-image-loader-1.8.5-with-sources.jar,通过右键单击项目名称 > Build Path > Configure Build Path > Libraries > Add Jars完成导包动作
2、加载网络图片可能在不同的页面都需要实现,所以适合单独定义一个静态方法,声明大环境下的参数。在src下新建MyAppllication类继承自Application接口,里面放用于全局的属性和方法
public class MyApplications extends Application{
@Override
public void onCreate(){
super.onCreate();
initImageLoader(getApplicationContext());
}
public static void initImageLoader(Context context){
File cacheDir=StorageUtils.getOwnCacheDirectory(context, "imageloader/cache");
ImageLoaderConfiguration config=new ImageLoaderConfiguration
.Builder(context)
.threadPriority(Thread.MAX_PRIORITY) //设置线程的优先级
.denyCacheImageMultipleSizesInMemory() //同一个URL只缓存一个图片
.discCacheFileNameGenerator(new Md5FileNameGenerator()) //保存时为URL加密
.discCache(new UnlimitedDiscCache(cacheDir)) //设置缓存路径
.tasksProcessingOrder(QueueProcessingType.LIFO) //设置图片加载和显示队列处理的类型
.build();
ImageLoader.getInstance().init(config);
}
}
3、在配置文件AndroidManifest中注册MyApplication:即增加属性:android:name="com.example.android_load.MyApplications",涉及到网络请求和SD卡读写权限需增加:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> //得到内置SD卡读写权限
<uses-permission android:name="android.permission.WRITE.MEDIA.STORAGE"/> //得到外置SD卡读写权限
4、activity_main布局中有id为imageview的图片控件
5、在MainActivity.java中调用即可:主要代码如下:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView imageview=(ImageView)findViewById(R.id.imageview);
ImageLoader imageloader=ImageLoader.getInstance();
imageloader.displayImage("http://imgstore.cdn.sogou.com/app/a/11220002/20487_pc.jpg", imageview);
}
好了,简单几步就实现了加载网络图片的功能,细节部分还需要分情况进行完善,午睡啦~