Android 使用Glide加载网络图片等比例缩放的实现方法
在做android图片加载的时候,由于手机屏幕受限,很多大图加载过来的时候,我们要求等比例缩放,比如按照固定的宽度,等比例缩放高度,使得图片的尺寸比例得到相应的缩放,但图片没有变形。显然按照android:scaleType不能实现,因为会有很多限制,所以必须要自己写算法。
通过Glide来缩放
其实glide提供了这样的方法。具体是显示继承Transformation的setResource方法。
(1)先获取网络或本地图片的宽高
(2)获取需要的目标宽
(3)按比例得到目标的高度
(4)按照目标的宽高创建新图
/** *=========================================== *版本:1.0 *描述:设置图片等比缩放 *glide处理图片.
*=========================================== */ publicclassTransformationUtilsextendsImageViewTarget{ privateImageViewtarget; publicTransformationUtils(ImageViewtarget){ super(target); this.target=target; } @Override protectedvoidsetResource(Bitmapresource){ view.setImageBitmap(resource); //获取原图的宽高 intwidth=resource.getWidth(); intheight=resource.getHeight(); //获取imageView的宽 intimageViewWidth=target.getWidth(); //计算缩放比例 floatsy=(float)(imageViewWidth*0.1)/(float)(width*0.1); //计算图片等比例放大后的高 intimageViewHeight=(int)(height*sy); ViewGroup.LayoutParamsparams=target.getLayoutParams(); params.height=imageViewHeight; target.setLayoutParams(params); } }
之后在Glide设置transform
Glide.with(this) .load(newActiviteLeftBannerUrl) .asBitmap() .placeholder(R.drawable.placeholder) .into(newTransformationUtils(target));
Transformation这是Glide的一个非常强大的功能了,它允许你在load图片->intoImageView中间这个过成对图片做一系列的变换。比如你要做图片高斯模糊、添加圆角、做度灰处理、圆形图片等等都可以通过Transformation来完成。
总结
以上所述是小编给大家介绍的Android使用Glide加载网络图片等比例缩放的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!