您的位置:首页 > 移动开发 > Android开发

Android菜鸡提升之路---图片加载Glide的学习

2018-03-15 16:35 489 查看
今天主要学习了glide的使用方法并实现了一下,然后就是慢慢地分析源码,学习知识来源主要来自郭神的解析和百度==!目前还是木有能力去自己分析源码,首先我们先实现一下:
1.打开android studio(目前开发的主流 有eclipse的童鞋可以自己去百度一下怎么使用,我没怎么用过eclipse,很绝望,哈哈哈)
2.添加依赖
 


3.在你的 AndroidManifest.xml的文件添加对网络请求的权限



4.然后就可以愉快的使用glide了 首先在一个空项目中的 main_activity.xml加入了Button控件和ImageView控件
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="加载图片"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="8dp" />
<ImageView
android:layout_width="300dp"
android:layout_height="300dp"
android:id="@+id/image"
android:layout_marginLeft="54dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="105dp" />(这里我主要用的是ConstraintLayout google推荐的布局,蛮好用的,就是电脑不太好的同学有点卡,毕竟ui布局可以拖入,减少代码量)
5.接下来就是使用glide
public void jiazai(View v){
try {
URL url = new URL("http://a.hiphotos.baidu.com/image/pic/item/e850352ac65c10384bfac6d1be119313b07e8918.jpg");
ImageView im = (ImageView) findViewById(R.id.image);
Glide.with(this).load(url).into(im);
}
catch (Exception e){

}
} 这里加载的百度的图片,with()后面可以接收activity,fragment和Appication的context,load()可以加图片的url或者本地的图片或者图片的二进制数据流
// 加载本地图片File file = new File(getExternalCacheDir() + "/image.jpg");Glide.with(this).load(file).into(imageView);
// 加载应用资源int resource = R.drawable.image;Glide.with(this).load(resource).into(imageView);
// 加载二进制流byte[] image = getImageBytes();Glide.with(this).load(image).into(imageView);
// 加载Uri对象Uri imageUri = getImageUri();Glide.with(this).load(imageUri).into(imageView);
into()就是你要把图片放到的位置
6.glide占位图(占位图就是在你加载图片未成功之前而显示的图片)

Glide.with(this).load(url).placeholder(R.drawable.xx).into(imageview)
当然glide有它的缓存机制,这样的话你的占位图可以会显示不出,只要加上diskCacheStrategy(DiskCacheStrategy.NONE)  
 Glide.with(this).load(url).placeholder(R.drawable.xx).diskCacheStrategy(DiskCacheStrategy.NONE)  .into(imageview)
当你在加载图片的时候可能会有错误,那么错误的时候需要提醒用户,加上error(R.drawable.xx)
 Glide.with(this)
.load(url)
.placeholder(R.drawable.xx)//占位图
.diskCacheStrategy(DiskCacheStrategy.NONE) //禁止缓存
.error(R.drawable.xx)//加载失败的占位图
 .into(imageview)

7.glide 可以自动帮你判定图片是静态的还是动图,这两种都是可以自行加载的,如果你不需要,那么自己可以设置

Glide.with(this)
.load(url)
.asGif()//值允许加载动图      .asBitmap()//值允许加载静态图片
.placeholder(R.drawable.xx)
.diskCacheStrategy(DiskCacheStrategy.NONE) 
.error(R.drawable.xx)
 .into(imageview)
8.glide可以设置加载图片大小

Glide.with(this)
.load(url)
.asGif()//值允许加载动图      .asBitmap()//值允许加载静态图片 //位置注意一下
.placeholder(R.drawable.xx)
.diskCacheStrategy(DiskCacheStrategy.NONE) 
.error(R.drawable.xx)
.override(200,200)
 .into(imageview)

最后,以上这些就是关于glide的使用,学习自郭神,当然自己也实现起来也很方便,菜鸟提升之路在于学习,学习,在学习,天天学一点,总有一天自己也可以成为大神,希望也可以给大家带来一定的帮助!有错误欢迎指导批评!

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