今天用到了图片压缩的属性,自己参照网上的说明,验证了一下,截图如下

(1)当图片背景是方形的时候

代码如下

  1. <LinearLayout
  2. android:id="@+id/l31"
  3. android:layout_width="wrap_content"
  4. android:layout_height="wrap_content"
  5. android:layout_alignLeft="@id/l21"
  6. android:layout_below="@id/l21"
  7. android:gravity="center_horizontal"
  8. android:orientation="vertical" >
  9.  
  10. <ImageButton
  11. android:layout_width="110dp"
  12. android:layout_height="110dp"
  13. android:scaleType="centerCrop"
  14. android:src="@drawable/test" />
  15.  
  16. <TextView
  17. android:layout_width="wrap_content"
  18. android:layout_height="wrap_content"
  19. android:text="centerCrop" />
  20. </LinearLayout>

图片的尺寸是 87*87

结果截图如下

(2)当图片背景是长方形的时候

代码如下

  1. <LinearLayout
  2. android:id="@+id/l31"
  3. android:layout_width="wrap_content"
  4. android:layout_height="wrap_content"
  5. android:layout_alignLeft="@id/l21"
  6. android:layout_below="@id/l21"
  7. android:gravity="center_horizontal"
  8. android:orientation="vertical" >
  9.  
  10. <ImageButton
  11. android:layout_width="100dp"
  12. android:layout_height="120dp"
  13. android:scaleType="centerCrop"
  14. android:src="@drawable/test" />
  15.  
  16. <TextView
  17. android:layout_width="wrap_content"
  18. android:layout_height="wrap_content"
  19. android:text="centerCrop" />
  20. </LinearLayout>

截图如下

(3)当图片比背景大的时候

代码如下

  1. <LinearLayout
  2. android:layout_width="100dp"
  3. android:layout_height="100dp"
  4. android:id="@+id/l31"
  5.  
  6. android:layout_alignLeft="@id/l21"
  7. android:layout_below="@id/l21"
  8. android:gravity="center_horizontal"
  9. android:orientation="vertical" >
  10.  
  11. <ImageButton
  12. android:layout_width="50dp"
  13. android:layout_height="70dp"
  14. android:scaleType="centerCrop"
  15. android:src="@drawable/test" />
  16.  
  17. <TextView
  18. android:layout_width="wrap_content"
  19. android:layout_height="wrap_content"
  20. android:text="centerCrop" />
  21. </LinearLayout>

结果如下

从上图我们可以总结下scaleType属性如下:

scaleType的属性值有:matrix fitXY fitStart fitCenter fitEnd center centerCrop centerInside

它们之间的区别如下:

matrix 用矩阵来绘制(从左上角起始的矩阵区域,不是很明白)

fitXY 把图片不按比例扩大/缩小到View的大小显示(确保图片会完整显示,并充满View)

fitStart 把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置(图片会完整显示)

fitCenter 把图片按比例扩大/缩小到View的宽度,居中显示(图片会完整显示)

fitEnd 把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置(图片会完整显示)

center 按图片的原来size居中显示,当图片宽超过View的宽,则截取图片的居中部分显示,当图片宽小于View的宽,则图片居中显示

centerCrop 按比例扩大/缩小图片的size居中显示,使得图片的高等于View的高,使得图片宽等于或大于View的宽(可能会溢出,不会缩小)

centerInside 将图片的内容完整居中显示,使得图片按比例缩小或原来的大小(图片比View小时)使得图片宽等于或小于View的宽 (图片会完整显示,不会放大)

imageView-scaleType 图片压缩属性的更多相关文章

  1. 对ImageView.ScaleType的详解

    设置的方式有两种: 1.在layout.xml里面定义android:scaleType = "center" 2.在代码中调用imageview.setScaleType(Ima ...

  2. Android ImageView(scaleType属性)图片按比例缩放

    <ImageView android:id="@+id/img" android:src="@drawable/logo" android:scaleTy ...

  3. android ImageView的属性android:scaleType,即ImageView.setScaleType(ImageView.ScaleType)

    实例 <ImageView android:id="@+id/image" android:layout_width="fill_parent" andr ...

  4. ImageView的属性android:scaleType,即ImageView.setScaleType(ImageView.ScaleType)

    1 imageView.setScaleType(ImageView.ScaleType.FIT_XY ); 1 这里我们重点理解ImageView的属性android:scaleType,即Imag ...

  5. 【转】ImageView.ScaleType属性

    原文网址:https://blog.csdn.net/Buaaroid/article/details/49360779 ImageView的Scaletype决定了图片在View上显示时的样子,如进 ...

  6. 刘下记录:ImageView.scaleType 属性全解析(含视频)

    0. 译序 原文:Working with the ImageView ImageView 有一个经常使用场景:ImageView 的宽度固定,高度等比例缩放.且 ImageView 在 paddin ...

  7. Android ImageView(scaleType属性)(转)

    (转自:http://www.open-open.com/lib/view/open1378257991687.html) <ImageView android:id="@+id/im ...

  8. 【Android】ImageView ScaleType属性值

    ImageView.ScaleType / android:scaleType值的意义区别: CENTER /center 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的 ...

  9. Android学习笔记:如何设置ImageView中图片的显示方式

    我们在用ImageView显示图片时,很多情况下图片的大小与ImageView的尺寸不是完全一样的.这时就涉及到该如何设置显示图片了. ImageView有个重要的属性是ScaleType,该属性用以 ...

随机推荐

  1. Flask Flash闪现

    Flash介绍以及工作方式 flash中添加消息 取出flash中的消息 Flash介绍以及工作方式 - 介绍: flash :闪现 一个好的应用和用户界面都需要良好的反馈. 如果用户得不到足够的反馈 ...

  2. SFDC 微服务实践之路 2016.12.10 杭州(整理)--转

    原文地址:http://mp.weixin.qq.com/s/8cC4Ewt6yPjnxdYxuNZlFQ 微服务是什么? 微服务是一种细粒度(Fine-Grain)的SOA 或许在座的高朋了解过其概 ...

  3. 如何快速复制Windows警告提示消息对话框内容

    凡是使用过计算机的朋友,都遇到过系统发出的警告提示消息对话框,如图所示. 哇!好长的一串英文错误警告,这要手写到什么时候呢?不!现在不用这么麻烦了. 你只要鼠标选中这个提示框Ctrl+C,然后打开你的 ...

  4. JS实现页面跳转 浏览器地址栏保持不变

    JS实现页面跳转 浏览器地址栏保持不变 在公司内部框架中,发现点击超链接,页面发生跳转,而浏览器地址栏URL始终保持不变.分析其实现机制,响应A标签onclick事件,通过Ajax向服务器端发送htt ...

  5. WebAssembly学习(一):认识WebAssembly

    WebAssembly作为一门新兴起的技术,在 JavaScript 圈非常的火!人们都在谈论它多么多么快,怎样怎样改变 Web 开发领域,被各大巨头所推广,这篇文章对其做一个简单的了解认识,本文非原 ...

  6. C++入门之HelloWorld

    1.在VS2017上新建一个C++空白项目,命名为hello 2.在资源文件下新建添加新建项main.cpp 3.在main.cpp中编写hello world输出代码 #include<std ...

  7. JAVA数组的基本方法

    数组的基本方法 数组可以存放多个数据,多个数据类型要统一数组格式: 格式一:常用写法 数组类型[] 数组名称 = new 数据类型[数组长度]; 格式二:蛋疼写法 数组类型[] 数组名称; 数组名称 ...

  8. CodeForcesGym 100502K Train Passengers

    Train Passengers Time Limit: 1000ms Memory Limit: 524288KB This problem will be judged on CodeForces ...

  9. COGS——T 7. 通信线路

    http://www.cogs.pro/cogs/problem/problem.php?pid=7 ★★   输入文件:mcst.in   输出文件:mcst.out   简单对比时间限制:1.5 ...

  10. js插件---jqGrid插件如何使用

    js插件---jqGrid插件如何使用 一.总结 一句话总结:jqdrid还是依赖加js初始化的方式,很多时候插件的问题一般都是引入的css和js的问题,jqgrid里面遇到的问题就是下载包有一些js ...