热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

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

这篇文章主要介绍了Android使用Glide加载网络图片等比例缩放的实现方法,需要的朋友可以参考下

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

通过Glide来缩放

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

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

/**
 * ===========================================
 * 版  本:1.0
 * 描  述:设置图片等比缩放
 * 

glide处理图片.

* =========================================== */ public class TransformationUtils extends ImageViewTarget { 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加载网络图片等比例缩放的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


推荐阅读
  • 在实际开发中,现在安卓端和后台之间的数据交互,一般都是用JSON来传递数据信息。JSON大家一般都比较熟悉。我这边就以实际项目中的后台传过来的情况和大家分析下及如何处理。比如后台返 ... [详细]
  • PHPcURL获取微信公众号access_token的实例php实例:这篇文章主要介绍了PHPcURL获取微信公众号access_token的实例,需要的朋友可以参考下1.开发微信 ... [详细]
  • 最近想用js做一个简单的计算器,不过网上的例子好像大部分都是直接从左到右挨个计算,就好像1+2*5,就会先计算1+2,再计算3*5,并没有实现运算符的优先级,这里找到了一种方法实现,来总结一下。不过这 ... [详细]
  • DFS基本概念步骤优缺点典型例题递推基本概念直接或者间接调用自身的算法称为递归算法一般数据n ... [详细]
  • 编程语言是从哪蹦出来的——大型伦理寻根现场
    Hello,我是Alex007,一个热爱计算机编程和硬件设计的小白,为啥是007呢?因为叫Alex的人太多了,再加上每天007的生活,Alex007就诞生了。聊一聊编程到底是啥,怎 ... [详细]
  • python自学教程哪里好,python比较好的教程
    本文目录一览:1、想学python去哪里比较好? ... [详细]
  • 进修JavaScript的原型笔记
    JavaScript的原型(prototype、__proto__、constructor)组织函数:functionFoo(){};实例对象:letf1newFoo;leto1n ... [详细]
  • ROC曲线ROC曲线:中文称受试者工作特征曲线横坐标为假阳性率FBRFBRFPNN是负样本数量FP是N个负样本中被分类器预测为正样本的个数纵坐标为真阳性率TPRTPRTPPTPP是 ... [详细]
  • 本文目录一览:1、《C语言程序设计第四版》pdf下载在线阅读全文,求百度网盘云资源 ... [详细]
  • 机器学习如何看世界 对抗机器学习诠释人工智能和人类思维的不同
    接近,计算,极限,看,世界,对抗,机器,学习,诠释,人工智能,和, ... [详细]
  • Linux负载均衡LVS(IPVS)
    一、LVS简介LVS是LinuxVirtualServer的简称,也就是Linux虚拟服务器,是一个由章文嵩博士发起的自由软件项目,现在已经是Linux ... [详细]
  • 全民k歌导出音乐方法(包含未发布,已发布歌曲导的两种方法)
    **一、首先来介绍未发布歌曲导出方法**这就很简单,基本大家都会我在这儿就给还不太清楚的童鞋简单做个指引1、打开QQ,找到我的文件2、找到SD卡3、按图示步骤3、图示这个.m4a就 ... [详细]
  • 题目大意题目原文:http:uva.onlinejudge.orgexternal10410474.pdf背景还是基本的排序问题,题目意思很简单就是首先 ... [详细]
  • 是不是zlib是这些库的压缩算法的实现库,而这么多库它们只是在打包的时候使用了zlib进行压缩而已.而具体的打包格式就有ZIP,BZIP2,GZ之分?但是在我们在用gz压缩时候通常之前 ... [详细]
  • iic协议
    IIC简介IIC,Inter-IntegratedCircuit,集成电路总线,需要2根线连接拓扑,是半双工,适用于”字节型”设备。I2C总线物理拓扑结构IIC通信原理: 通过对S ... [详细]
author-avatar
永恒多一天_313
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有