您的位置:首页 > 理论基础 > 计算机网络

解决Glide加载网络圆角图片先显示完整图片的问题

2017-09-08 20:16 1081 查看

问题: Glide加载网络图片的时候先显示完整图片,再显示圆角图片

圆角图片的设置是采用以下开源库控件

compile 'com.makeramen:roundedimageview:2.3.0'


直接在布局文件里面添加该控件即可,通过app:riv_corner_radius指定圆角的半径

<com.makeramen.roundedimageview.RoundedImageView
android:id="@id/ididid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:scaleType="centerCrop"
app:riv_corner_radius="6dp" />
1
2
3
4
5
6
7


[/code]

可是如果通过Glide的into()方法直接传入该控件的引用就会出现加载图片到控件上时先显示直角图片,再显示圆角图片。这个时候如果采用了into()方法里面传入BitmapImageViewTarget对象的话就能避免这个问题。into方法使用的方式如下:

into(new BitmapImageViewTarget(imageView) {
@Override
protected void setResource(Bitmap resource) {
imageView.setImageBitmap(resource);//imageView为该圆角控件的引用
}
});
1
2
3
4
5
6


[/code]

注意:

1. 如果要给into传递BitmapImageViewTarget对象的时候需要先调用asBitmap方法

2. 调用asBitmap方法后就不能再调用crossFade方法,如果想实现淡入的动画效果可以使用animate方法

Glide.with(mContext)
.load(photoTinyURL)
.asBitmap()
.animate(R.anim.crop_image_fade_anim)
.placeholder(R.drawable.crop_corner_white)
.error(R.drawable.icon_default_head_gray_white)
.into(new BitmapImageViewTarget(imageView) {
@Override
protected void setResource(Bitmap resource) {
imageView.setImageBitmap(resource);
}
});
1
2
3
4
5
6
7
8
9
10
11
12


[/code]

文件crop_image_fade_anim的内容:

<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:duration="200"
android:fromAlpha="0.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:toAlpha="1.0" />
</set>
1
2
3
4
5
6
7
8


[/code]

http://blog.csdn.net/u014449046/article/details/71036742
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐