Android中的Glide

引入glide
在这里插入图片描述

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

你可能感兴趣的:(android)