Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> ImageView的ScaleType詳解

ImageView的ScaleType詳解

編輯:關於Android編程

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),方便查看效果。

 



    

進入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).
不縮放圖片,用圖片的矩陣從左上角開始來繪制。

\ \

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved