方法一:客户端等比例

  前提条件:服务器端需要返回原始图片的“宽和高”或者“宽高缩放比例”,客户端要显示的图片的宽或者高只要其一是固定的(例如:高度为200,宽度未知,或者高度为400宽度未知)

  在这种条件下客户端可以根据服务端返回的图片的宽高或者宽高比例计算出图片相对于屏幕的宽或者高。例如:缩放比例为:宽(图片原始宽度200px)/高(图片原始高度400px) = 0.5 。客户端定义要显示的宽度为100px,则根据缩放比例高度应该显示200px(100/0.5=200)图片才不会变形。android:scaleType="fitXY"

方法二:服务端等比例

  前提条件:客户端必须告诉服务端他要拿到的图片的宽度和高度。

  服务端根据客户端给出的宽高,按照服务端能给到的最优方案返回一张按照等比例缩放的缩略图,给客户端显示 android:scaleType="fitXY"

方法三:客户端+服务端都等比例缩放

  方法一和方法二都能够在一定程度上解决图片按等比例方式显示,但是都具有一定的不足,第一种方法的不足之处是:服务端返回的图片是原图,比较浪费流量和手机内存。第二中方法的不足之处是,有时候客户端给到服务端的宽高,服务端并不能够按照客户端的要求

返回。因此在显示上会出现一定的拉伸或者压缩。

  比较好的一种方法是:第一种方法+第二种方法。首先服务端会给到客户端原始图片的宽高比例,客户端根据宽高比例,计算出最优的要显示到界面上的宽和高给到服务器。服务器拿到客户端给的宽高之后,计算出一个缩略图给到客户端,之后客户端拿到这张图片直接显示。android:scaleType="fitXY"

转载于:https://www.cnblogs.com/tony-yang-flutter/p/4807735.html

Android 让图片等比例缩放的三种方法相关推荐

  1. android启动其他app的服务器,Android中通过外部程序启动App的三种方法

    这篇文章主要介绍了Android中通过外部程序启动App的三种方法, 本文讲解了直接通过包名. 通过自定义的Action. 通过Scheme三种方法,并分别给出操作代码,需要的朋友可以参考下 ==== ...

  2. 什么是android应用程序未安装,Android 解决应用程序未安装的三种方法

    <Android 解决应用程序未安装的三种方法>由会员分享,可在线阅读,更多相关<Android 解决应用程序未安装的三种方法(3页珍藏版)>请在人人文库网上搜索. 1.解决安 ...

  3. 图片预加载的三种方法

    转载: 图片预加载的三个方法 - 浅夏初晴 - 博客园利用CSS.JavaScript及Ajax实现图片预加载的三大方法 预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利 ...

  4. ios+android备份短信恢复软件下载,三种方法恢复iPhone短信,简单有效。

    原标题:三种方法恢复iPhone短信,简单有效. 在使用iPhone手机的时候,偶尔也会遇到一些不愉快的小插曲,比如,一不小心就删除了重要的短信,这可能是工作的信息也可能是恋人之间具有纪念意义的信息. ...

  5. php剪裁图片,PHP实现图片裁剪与缩放的几种方法

    图片指定大小然后由php相关函数来实现图片裁剪功能,前段的js效果在这里就不介绍了,大家可以到网上找有很多这类代码,我只整理了php操作部份. 方法一  代码如下 复制代码 图片裁剪缩放函数,支持方位 ...

  6. Android开发之保存图片到相册的三种方法详解

    有三种方法如下:三个方法都需要动态申请读写权限否则保存图片到相册也会失败 方法一: /**      * 保存bitmap到本地      *      * @param bitmap Bitmap ...

  7. Android文字跑马灯简单实现的三种方法

    第一种 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android= ...

  8. 如何图片转文字?这三种方法快记下来

    图片转文字怎么转?相信刚进入职场的小伙伴都遇到过这样的问题.毕竟,在工作中,有时候只是需要提取图片中的一些文字,就像老板发了一组图片要求你将它们整理成文件,这个时候你知道要怎么转换吗?今天教你三种转换 ...

  9. php gif裁剪,PHP实现图片裁剪与缩放的几种方法

    $start_y 起始位置Y(当选定方位模式裁剪时,此参数不起作用) * @return 裁剪图片存储路径 */ function thumb($src_file, $new_width, $new_ ...

最新文章

  1. 使用VC内嵌Python实现的一个代码检测工具
  2. python的set结构
  3. 【learning】洲阁筛
  4. jmeter存储http请求返回参数_Jmeter接口测试之HTTP请求默认值(八)
  5. (四面体)CCPC网络赛 HDU5839 Special Tetrahedron
  6. 一步一步写算法(之选择排序)
  7. 新春测 kinect motor
  8. js实现跟浏览器 ctrl+f 一样的效果
  9. [技术讨论]关于前几天公布的京东bug上的问题分析
  10. 【软件工程导论】习题集
  11. 谷仓创造区块链+电商消费新模式
  12. Python17_项目实操关卡-人机PK
  13. dbeave连接达梦数据库简单操作使用
  14. win10更新不动怎么办,win10更新卡住解决办法
  15. oracle11g 客户端字符集,查看 Oracle11g 的字符集
  16. 数据结构 之 无向连通图
  17. The Shawshank Redemption-1
  18. 当兵的目标和计划_新兵下连时,一定要弄明白这三件事,对新兵及家长来说很有必要...
  19. 错误 3002: 映射从第 10323 行开始的片段时有问题:表 T_BillTripDetail 的键(T_BillTripDetail.DetailGUID)具有潜在运行时冲突: 列(T_Bill
  20. 提升GraphicsMagick图片压缩软件性能使用心得

热门文章

  1. netty4搭建简单的http服务器
  2. PVANET: Deep but Lightweight Neural Networks for Real-time Object Detection
  3. mac android wifi调试
  4. python中循环的技巧
  5. 没有终结点在侦听可以接受消息的_IoT Hub入门(3)使用消息路由将原始设备数据记录存档...
  6. 串口接收标志位语句_如何获取串口的发送和接收的标志位?
  7. 重磅!一文解读神策智能推荐
  8. 告别运营怪圈,不做“背锅侠+加班狗+低薪族”!
  9. QQ会员2018春节红包抵扣券项目背后的故事
  10. 1165: 零起点学算法72——首字母变大写