1. 程式人生 > >ImageView的屬性scaletype的取值的使用

ImageView的屬性scaletype的取值的使用

scaleType=“matrix” 保持原圖大小、從左上角的點開始,以矩陣形式繪圖

CENTER /center 按圖片的原來size居中顯示,當圖片長/寬超過View的長/寬,則擷取圖片的居中部分顯示

CENTER_CROP / centerCrop 按比例擴大圖片的size居中顯示,使得圖片長(寬)等於或大於View的長(寬)

CENTER_INSIDE / centerInside 將圖片的內容完整居中顯示,通過按比例縮小或原來的size使得圖片長/寬等於或小於View的長/寬

FIT_CENTER / fitCenter 把圖片按比例擴大/縮小到View的寬度,居中顯示

FIT_END / fitEnd 把圖片按比例擴大/縮小到View的寬度,顯示在View的下部分位置

FIT_START / fitStart 把圖片按比例擴大/縮小到View的寬度,顯示在View的上部分位置

FIT_XY / fitXY 把圖片不按比例擴大/縮小到View的大小顯示

ImageView的Scaletype決定了圖片在View上顯示時的樣子,如進行何種比例的縮放,及顯示圖片的整體還是部分,等等。

設定的方式包括:

  1. 在layout xml中定義android:scaleType=”CENTER”

  2. 或在程式碼中呼叫imageView.setScaleType(ImageView.ScaleType.CENTER);

接下來,將對ScaleType的值和對應的顯示效果用最直觀的方式——真圖演示的方法,來進行說明。

首先,是測試使用的原始圖片:

(Dimensions: 128 * 128)
這裡寫圖片描述
(Dimensions: 640 * 428)

這裡寫圖片描述

好,開始下面的測試:

  1. SetScaleType(ImageView.ScaleType.CENTER);

    按圖片的原來size居中顯示,當圖片長/寬超過View的長/寬,則擷取圖片的居中部分顯示
    這裡寫圖片描述
    這裡寫圖片描述

  2. SetScaleType(ImageView.ScaleType.CENTER_CROP);

    按比例擴大圖片的size居中顯示,使得圖片長(寬)等於或大於View的長(寬)

    這裡寫圖片描述
    這裡寫圖片描述

  3. setScaleType(ImageView.ScaleType.CENTER_INSIDE);

    將圖片的內容完整居中顯示,通過按比例縮小或原來的size使得圖片長/寬等於或小於View的長/寬
    這裡寫圖片描述
    這裡寫圖片描述

  4. setScaleType(ImageView.ScaleType.FIT_CENTER);

    把圖片按比例擴大/縮小到View的寬度,居中顯示

這裡寫圖片描述
這裡寫圖片描述

  1. FIT_START, FIT_END在圖片縮放效果上與FIT_CENTER一樣,只是顯示的位置不同,FIT_START是置於頂部,FIT_CENTER居中,FIT_END置於底部。

    在此就不給出示例了。

  2. FIT_XY

    不按比例縮放圖片,目標是把圖片塞滿整個View。

    這裡寫圖片描述
    這裡寫圖片描述

引用
https://developer.android.google.cn/reference/android/widget/ImageView.ScaleType