引入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"><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="get"android:onClick="loadImage"/><ImageViewandroid:id="@+id/image"android:layout_width="match_parent"android:layout_height="wrap_content" />
</LinearLayout>
public class TestIIActivity extends Activity{private ImageView imageView;@Overrideprotected 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方法中使用:
@Overridepublic 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);