ImageView的ScaleType详解

原创 2016年08月31日 16:55:49

ScaleType表示ImageView的缩放类型,决定了一张图片在ImageView控件内如何缩放和显示。

ScaleType的官方文档:
https://developer.android.com/reference/android/widget/ImageView.ScaleType.html

ScaleType可以使用java代码或xml属性来设置。


ScaleType是一个枚举类型,定义如下。

public enum ScaleType {
    MATRIX      (0),

    FIT_XY      (1),

    FIT_START   (2),

    FIT_CENTER  (3),

    FIT_END     (4),

    CENTER      (5),

    CENTER_CROP (6),

    CENTER_INSIDE (7);

    ScaleType(int ni) {
        nativeInt = ni;
    }
    final int nativeInt;
}
以centerCrop为例,使用java代码设置,代码为imageView.setScaleType(ImageView.ScaleType.CENTER_CROP)。

在xml布局文件中,可以使用如下属性。
android:scaleType="center"
android:scaleType="centerCrop"
android:scaleType="centerInside"
android:scaleType="fitStart"
android:scaleType="fitCenter"
android:scaleType="fitEnd"
android:scaleType="fitXY"
android:scaleType="matrix"


下面,结合示例详细介绍每一种类型。
首先准备两张示例图片,一张小图和一张大图,分别为adidas1.png(135*135)和adidas2.png(540*540)。
     
然后添加如下xml布局文件。将ImageView的宽高设置为150dp和100dp,以确保小图的尺寸小于ImageView的尺寸,大图的尺寸大于ImageView的尺寸。并将ImageView的背景色设置成灰色(#cccccc),方便查看效果。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:background="#000000"
              android:gravity="center">
    <ImageView
        android:layout_width="150dp"
        android:layout_height="100dp"
        android:background="#cccccc"
        android:scaleType=""
        android:src="@drawable/adidas"/>
</LinearLayout>

进入ScaleType类型的介绍。

CENTER
Center the image in the view, but perform no scaling. 
把图片放置到ImageView的中心,不执行缩放。如果图片尺寸比ImageView小,会有空白区域;如果图片尺寸比ImageView大,图片的中间区域会被裁剪出来显示到ImageView中。
     

CENTER_CROP
Scale the image uniformly (maintain the image's aspect ratio) so that both dimensions (width and height) of the image will be equal to or larger than the corresponding dimension of the view (minus padding). The image is then centered in the view.
把图片放置到ImageView的中心,执行缩放。将图片的宽度和高度按照相同比例缩放,直到图片的宽度大于或者等于ImageView的宽度,同时图片的高度大于或者等于ImageView的高度。
     

CENTER_INSIDE
Scale the image uniformly (maintain the image's aspect ratio) so that both dimensions (width and height) of the image will be equal to or less than the corresponding dimension of the view (minus padding). 
把图片放置到ImageView的中心。如果图片的尺寸小于ImageView的尺寸,不缩放;否则,将图片的宽度和高度按照相同比例缩放,直到图片的宽度小于ImageView的宽度,同时图片的高度小于ImageView的高度。
     

FIT_CENTER
Scale the image using CENTER. 
把图片放置到ImageView的中心,然后按相同比例放大或缩小,直到图片宽度等于ImageView宽度,或者高度等于ImageView高度。
     

FIT_START
Scale the image using START. 
把图片放置到ImageView的左上角,然后按相同比例放大或缩小,直到图片宽度等于ImageView宽度,或者高度等于ImageView高度。
     

FIT_END
Scale the image using END. 
把图片放置到ImageView的右下角,然后按相同比例放大或缩小,直到图片宽度等于ImageView宽度,或者高度等于ImageView高度。
     

FIT_XY
Scale the image using FILL.
不保持图片的宽高比例,执行放大或缩小,直到图片宽度等于ImageView宽度,同时高度等于ImageView高度。
    

MATRIX
Scale using the image matrix when drawing. The image matrix can be set using setImageMatrix(Matrix).
不缩放图片,用图片的矩阵从左上角开始来绘制。

     


版权声明:本文为博主原创文章,转载请注明出处。 举报

相关文章推荐

Android ImageView scaleType+adjustViewBounds两个属性详解 保证图片不变形

转自:http://www.2cto.com/kf/201411/348601.html 记得当初学习ImageView 的时候,觉得很简单,很基础。 直到两年后我才开始使用adjustViewBo...

ImageView.ScaleType 属性详解

看图说话当图片比 ImageView 大时:当图片比 ImageView 小时:android:scaleType=”center” 当图片大于 ImageView 的宽高:以图片的中心点和 Imag...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

ImageView的scaletype详解

第一次使用csdn记录 飞机票:http://blog.sina.com.cn/s/blog_618199e60100y537.html 很详细 2、XML属性 属性名...

Android ImageView 的 scaleType属性详解(二)

接着上一篇文章说,如果你没有看上一篇的文章的话,先去看看吧,这章没有上一篇汇重要Android ImageView 的 scaleType属性详解(一) 1 就不扯别的了吧,说多了都是泪水啊。 5 s...

ImageView中的ScaleType详解

官方介绍下面举个例子对以上几点属性逐条说明准备准备一张400x300的图片,命名为:test_400x300,写一个简单的布局,观察右边preview预览图的变化。 从图中我们可以看到,此控件的...

Android ImageView.ScaleType详解

获取到商品图片显示时发现

Android 图片ImageView.ScaleType详解

ImageView控件中有个属性叫scaleType,scaleType用来控制在ImageView上显示的图片样式。 ImageView提供了以下方法选择scaleType的样式 public ...

Android中ImageView的scaleType属性详解

一直都对scaleType属性一知半解,今天有空网上找了些资料加上自己的demo演示终于算是了却了一直存在的疑问。ImageView中的scaleType属性用以表示显示图片的方式,下面开始详细的介绍...

Android ImageView 的scaleType属性详解(一)

首先扯点别的:昨天晚上怕97拳皇交流群里喊我打拳皇,都没敢上QQ,把被虐,也是艰难啊。行,今天少扯点,直接进入正题:Android ImageView 的scaleType属性详解 1 首先看看An...

ImageView的ScaleType详解

本文转载至:ifangler.com一直对ImageView的ScaleType的几个选项有点陌生,网上的资料也没能让我清楚的知道在什么场景应该选择ScaleType的哪个选项,于是自己用例子来实验了...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)