Android 使用Glide加载网络图片等比例缩放的实现方法

 更新时间:2018年08月06日 11:26:16   作者:记录自己的点点滴滴  
这篇文章主要介绍了Android 使用Glide加载网络图片等比例缩放的实现方法,需要的朋友可以参考下

在做android图片加载的时候,由于手机屏幕受限,很多大图加载过来的时候,我们要求等比例缩放,比如按照固定的宽度,等比例缩放高度,使得图片的尺寸比例得到相应的缩放,但图片没有变形。显然按照android:scaleType不能实现,因为会有很多限制,所以必须要自己写算法。

通过Glide来缩放

其实glide提供了这样的方法。具体是显示继承Transformation 的 setResource 方法。

(1) 先获取网络或本地图片的宽高
(2) 获取需要的目标宽
(3) 按比例得到目标的高度
(4) 按照目标的宽高创建新图

/**
 * ===========================================
 * 版  本:1.0
 * 描  述:设置图片等比缩放
 * <p>glide处理图片.</p>
 * ===========================================
 */
public class TransformationUtils extends ImageViewTarget<Bitmap> {
  private ImageView target;
  public TransformationUtils(ImageView target) {
    super(target);
    this.target = target;
  }
  @Override
  protected void setResource(Bitmap resource) {
    view.setImageBitmap(resource);
    //获取原图的宽高
    int width = resource.getWidth();
    int height = resource.getHeight();
    //获取imageView的宽
    int imageViewWidth = target.getWidth();
    //计算缩放比例
    float sy = (float) (imageViewWidth * 0.1) / (float) (width * 0.1);
    //计算图片等比例放大后的高
    int imageViewHeight = (int) (height * sy);
    ViewGroup.LayoutParams params = target.getLayoutParams();
    params.height = imageViewHeight;
    target.setLayoutParams(params);
  }
}

之后在Glide设置transform       

Glide.with(this)
          .load(newActiviteLeftBannerUrl)
          .asBitmap()
          .placeholder(R.drawable.placeholder)
          .into(new TransformationUtils(target));

Transformation 这是Glide的一个非常强大的功能了,它允许你在load图片 -> into ImageView 中间这个过成对图片做一系列的变换。比如你要做图片高斯模糊、添加圆角、做度灰处理、圆形图片等等都可以通过Transformation来完成。

总结

以上所述是小编给大家介绍的Android 使用Glide加载网络图片等比例缩放的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • android通用xml解析方法

    android通用xml解析方法

    之前做的网络相关的应用,里面涉及到了xml的解析,由于急于完成任务也没有设计就直接敲代码。这几天给一个朋友做项目的时候也涉及到了xml的解析,而且解析的内容比较多,我查看了以前的项目中的相关代码,顿时觉得很多代码都是可以优化的。在此写两个通用的xml解析方法,当然这里所讲的通用只是在一定程度上并且需要遵守一些规范。
    2013-03-03
  • Android使用RecyclerView实现列表数据选择操作

    Android使用RecyclerView实现列表数据选择操作

    这篇文章主要为大家详细介绍了Android使用RecyclerView结合CheckBox实现列表数据选择操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • Android编程之软键盘的隐藏显示实例详解

    Android编程之软键盘的隐藏显示实例详解

    这篇文章主要介绍了Android编程之软键盘的隐藏显示,结合实例形式详细分析了Android编程中软键盘的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-12-12
  • 学习使用Material Design控件(三)使用CardView实现卡片效果

    学习使用Material Design控件(三)使用CardView实现卡片效果

    这篇文章主要为大家介绍了学习使用Material Design控件的详细教程,如何使用CardView实现卡片效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • Android实用的代码片段 常用代码总结

    Android实用的代码片段 常用代码总结

    这篇文章主要介绍了Android实用的代码片段 常用代码总结,需要的朋友可以参考下
    2014-09-09
  • Android实现搜索本地音乐的方法

    Android实现搜索本地音乐的方法

    这篇文章主要为大家详细介绍了Android实现搜索本地音乐的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Android okhttputils现在进度显示实例代码

    Android okhttputils现在进度显示实例代码

    本文通过实例代码给大家详细介绍了Android okhttputils现在进度显示,代码简答易懂,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2016-12-12
  • Android切换卡TabWidget用法示例

    Android切换卡TabWidget用法示例

    这篇文章主要介绍了Android切换卡TabWidget用法,结合实例形式分析了TabWidget选项卡界面布局及功能实现的操作技巧,需要的朋友可以参考下
    2016-08-08
  • Android 高版本API方法在低版本系统上的兼容性处理

    Android 高版本API方法在低版本系统上的兼容性处理

    本文主要介绍Android 高版本API方法在低版本系统上的兼容性处理的问题,这里提供了解决办法,并附简单示例,来详细说明解决问题步骤,有需要的小伙伴可以参考下
    2016-09-09
  • Android开发实现读取Assets下文件及文件写入存储卡的方法

    Android开发实现读取Assets下文件及文件写入存储卡的方法

    这篇文章主要介绍了Android开发实现读取Assets下文件及文件写入存储卡的方法,涉及Android文件与目录的读取、写入、转换等相关操作技巧,需要的朋友可以参考下
    2017-10-10

最新评论