<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="get"
android:onClick="loadImage"/>
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
public class TestIIActivity extends Activity{
private ImageView imageView;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test2);
imageView = (ImageView) findViewById(R.id.image);
}
public void loadImage(View View){
String url="https://www.baidu.com/img/bd_logo1.png?where=super";
Glide.with(this)/*在哪个页面显示*/
.load(url)/*加载的网络图片地址*/
.placeholder(R.drawable.loading2)/*预显示占位图*/
.dontAnimate()/*不进行图片的拉伸*/
.override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)/*强制让图片原大小显示*/
.into(imageView);/*在ImageView中显示*/
}
}
Glide中的占位符:
占位符的使用方法包括:
1.placeholder:正在请求图片的时候展示的图片
2.error:如果请求失败的时候展示的图片(如果没有设置,还是展示placeholder的占位符)
3.fakkback:如果请求的url/model为null的时候展示的图片(如果没有设置,还是展示placeholder的占位符)
override:指定加载图片的大
引入如图片的变换:
transform(new CircleCrop)//把图片变成圆形
rotote:旋转图片
roundedCorners:四个角统一指定
GranularRoundedCorners:四个角单独指定
如果使用的是ListView,可以直接在Adapter的getView方法中使用:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (null == convertView) {
//.....
}
Glide
.with(context)
.load(imageUrls[position])
.into(holder.imageView);
return convertView;
}
网络加载图片到ImageView中
Glide.with(context).load(imageUrl).into(imageView);
当加载网络图片时,由于加载过程中图片未能及时显示,此时可能需要设置等待时的图片, 通过placeHolder()方法:
Glide.with(context)
.load(imageUrl)
.placeholder(R.mipmap.ic_launcher)
.into(imageView);
当加载图片失败时,通过error(Drawable drawable)方法设置加载失败后的图片显示:
Glide.with(context)
.load(imageUrl)
.error(R.mipmap.ic_launcher)
.into(imageView);
图片的缩放
1)使用centerCrop是利用图片图填充ImageView设置的大小,如果ImageView的Height是match_parent则图片就会被拉伸填充
Glide.with(context)
.load(imageUrl)
.centerCrop()
.into(imageView);
2)使用fitCenter即缩放图像让图像都测量出来等于或小于 ImageView的边界范围,该图像将会完全显示,但可能不会填满整个ImageView。
Glide.with(context)
.load(imageUrl)
.fitCenter()
.into(imageView);
显示gif动画,asGif()判断是否是gif动画
Glide.with(context)
.load(imageUrl)
.asGif()
.into(imageView);
显示本地视频
String filePath = "/storage/emulated/0/Pictures/example_video.mp4";
Glide.with( context )
.load( Uri.fromFile( new File( filePath ) ) )
.into(imageViewGifAsBitmap );
设置图片显示效果(圆角、圆形、高斯模糊、蒙板、裁剪等等).bitmapTransform()
Glide.with(this).load(R.mipmap.ic_image_sample)
//模糊
.bitmapTransform(new BlurTransformation(this))
//圆角
.bitmapTransform(new RoundedCornersTransformation(this, 24, 0,
RoundedCornersTransformation.CornerType.ALL))
//遮盖
.bitmapTransform(new MaskTransformation(this, R.mipmap.ic_launcher))
//灰度
.bitmapTransform(new GrayscaleTransformation(this))
//圆形
.bitmapTransform(new CropCircleTransformation(this))
.into(mResultIv);