1. 程式人生 > >scaleType設定縮放型別

scaleType設定縮放型別

android:scaleType用於設定顯示的圖片如何縮放或者移動以適應ImageView的大小Java程式碼中可以通過imageView.setScaleType(ImageView.ScaleType.CENTER);來設定~可選值如下:

  • fitXY:對影象的橫向與縱向進行獨立縮放,使得該圖片完全適應ImageView,但是圖片的橫縱比可能會發生改變
  • fitStart:保持縱橫比縮放圖片,知道較長的邊與Image的邊長相等,縮放完成後將圖片放在ImageView的左上角
  • fitCenter:同上,縮放後放於中間;
  • fitEnd:同上,縮放後放於右下角;
  • center:保持原圖的大小,顯示在ImageView的中心。當原圖的size大於ImageView的size,超過部分裁剪處理。
  • centerCrop:保持橫縱比縮放圖片,知道完全覆蓋ImageView,可能會出現圖片的顯示不完全
  • centerInside:保持橫縱比縮放圖片,直到ImageView能夠完全地顯示圖片
  • matrix:預設值,不改變原圖的大小,從ImageView的左上角開始繪製原圖,原圖超過ImageView的部分作裁剪處理

接下來我們一組組的來對比:

1)1.fitEnd,fitStart,fitCenter

這裡以fitEnd為例,其他兩個類似:

示例程式碼:

<!-- 保持圖片的橫縱比縮放,知道該圖片能夠顯示在ImageView元件上,並將縮放好的圖片顯示在imageView的右下角 -->
<ImageViewandroid:id="@+id/imageView3"android:layout_width="300px"android:layout_height="300px"android:layout_margin="5px"android:scaleType="fitEnd"android:src="@mipmap/meinv"/>

執行效果圖:

2)centerCrop與centerInside

  • centerCrop:按橫縱比縮放,直接完全覆蓋整個ImageView
  • centerInside:按橫縱比縮放,使得ImageView能夠完全顯示這個圖片

示例程式碼:

<ImageView
android:layout_width="300px"android:layout_height="300px"android:layout_margin="5px"android:scaleType="centerCrop"android:src="@mipmap/meinv"/><ImageViewandroid:layout_width="300px"android:layout_height="300px"android:layout_margin="5px"android:scaleType="centerInside"android:src="@mipmap/meinv"/>

執行效果圖:

3)fitXY

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

示例程式碼:

<ImageViewandroid:layout_width="300px"android:layout_height="300px"android:layout_margin="5px"android:scaleType="fixXY"android:src="@mipmap/meinv"/>

執行效果圖:

好吧,明顯扁了=-=~

4)matrix

從ImageView的左上角開始繪製原圖,原圖超過ImageView的部分作裁剪處理

示例程式碼:

<ImageViewandroid:layout_width="300px"android:layout_height="300px"android:layout_margin="5px"android:scaleType="matrix"android:src="@mipmap/meinv"/>

執行效果圖:

5)center

保持原圖的大小,顯示在ImageView的中心。當原圖的size大於ImageView的size,超過部分裁剪處理。

示例程式碼:

<ImageViewandroid:layout_width="300px"android:layout_height="300px"android:layout_margin="5px"android:scaleType="center"android:src="@mipmap/meinv"/>

執行效果圖: