Android - Glide
Glide:图片加载库
图片加载框架的对比 glide占明显优势
ImageLoader:已经停止了维护
Picasso:无法加载gif(Square公司开发)
Glide:适用于更多的内容表现形式,快,搞笑缓存策略
Fresco:适用于需要高性能加载大量图片的场景
详细教程可以根据:https://mrfu.me/2016/02/27/Glide_Getting_Started/
实例学习:
一:加载资源图片
1:下载glide依赖
com.github.bumptech.glide:glide
2:在Mainifest添加权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
3:布局文件
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/iv_test"
/>
4:activity
ImageView iv = (ImageView)findViewById(R.id.iv_test);
Glide.with(this).load(R.mipmap.ic_launcher).into(iv);
运行结果

二:加载uri图片
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.net.Uri;
import android.os.Bundle;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
public class MainActivity extends AppCompatActivity {
public static final String Resource = "android.resource://";
public static final String Slash = "/";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getImage();
}
public void getImage() {
int resId = R.mipmap.ic_launcher;
Uri uri = Uri.parse(Resource + getPackageName() + Slash + resId);
ImageView iv = (ImageView)findViewById(R.id.iv_test);
Glide.with(this).load(uri).into(iv);
}
}
三:加载网络图片
关键代码:
String url = "http://dmimg.5054399.com/allimg/pkm/pk/22.jpg";
ImageView iv = (ImageView)findViewById(R.id.iv_test);
Glide.with(this).load(url).into(iv);
具体:
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String url = "http://dmimg.5054399.com/allimg/pkm/pk/22.jpg";
ImageView iv = (ImageView)findViewById(R.id.iv_test);
Glide.with(this).load(url).into(iv);
}
}
运行结果:

Glide两种裁剪方式
1:fitCenter(默认)
Glide.with(this).load(url).fitCenter().into(iv1);
自适应控件, 不剪裁 ,在不超过控件的前提下,等比 缩放 到 最大 ,居中显示
2:centerCrop
Glide.with(this).load(url).centerCrop().into(iv2);
以填满整个控件为目标,等比缩放,超过控件时将被 裁剪 ( 宽高都要填满 ,所以只要图片宽高比与控件宽高比不同时,一定会被剪裁)
都是通过调用transform方法来对图片进行处理
Glide可以添加一些预处理,如网上图片地址失效加载本地资源
Glide.with(MainActivity.this)
//图片地址
.load("url")
//图片显示大小
.override(150,150)
//剪切方式,这理选择了centerCrop
.centerCrop()
//加载时预显示的图片,占位
.placeholder(R.drawable.ic_launcher_background)
//加载失败后显示的图片
.error(R.drawable.ic_launcher_background)
//跳过内存缓存
.skipMemoryCache(true)
//磁盘缓存策略
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(imageView);

浙公网安备 33010602011771号