Android | 玩轉(zhuǎn)ImageView,使用ScaleType屬性詳解
在我們平時的開發(fā)過程中,可以說圖片展示是每個App必備的,所以我們會用到ImageView圖片控件,對于每個Android開發(fā)者來說,這已經(jīng)非常熟悉了,那有童鞋就會問了:這還有什么好講的呢?事實確實是這樣嗎?
那我問問你,你確定對ImageView控件的每個屬性都了如指掌了嗎?,記得之前面試的時候,很多面試官很喜歡問ScaleType屬性的使用,這就考察你是否真的理解了。之前我也并沒有在意這個屬性的使用,以為只會在面試的時候才需要用到,事實是我錯了,在最近的開發(fā)過程中,使用了大量的圖片展示商品的圖片,而且不同的模塊,圖片的展示還需要不一樣,那么這個時候ScaleType屬性就發(fā)揮作用了,可是這個時候突然發(fā)現(xiàn)自己的理解也有點模糊,所以還是有必要重新理解一下這個屬性的用法的,下面我們來看看詳解吧。
當(dāng)我們設(shè)置ImageView的ScaleType屬性時,開發(fā)工具中會彈出以下的選項讓你選擇:

首先我們設(shè)置ImageView控件填充整個屏幕:
<ImageViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:background="#00c6a6"/>
這個是還沒有設(shè)置ScaleType屬性的效果圖:

再來看看我們需要加載的圖片的原圖,準備了兩張不同尺寸的原圖:
大圖

小圖

那我們來看看每個選項的效果:
android:scaleType=“center”1、當(dāng)原圖的size小于ImageView的size時,保持原圖的大小,顯示在ImageView的中心

2、當(dāng)原圖的size大于ImageView的size時,多出來的部分被截掉

android:scaleType=“center_inside”以原圖正常顯示為目的:
1、當(dāng)原圖的size小于ImageView的size時,不做處理居中顯示圖片

2、當(dāng)原圖的size大于ImageView的size時,就按照比例縮小原圖的寬高,居中顯示在ImageView中

android:scaleType=“center_crop”以原圖填滿ImageView為目的:
1、當(dāng)原圖的size小于ImageView的size時,則按比例拉升原圖的寬和高,填充ImageView居中顯示。

2、如果原圖size大于ImageView的size,則與center_inside一樣,按比例縮小,居中顯示在ImageView上

android:scaleType=“matrix”不改變原圖的大小,從ImageView的左上角開始繪制,超出部分做剪切處理
1、當(dāng)原圖的size小于ImageView的size時

2、當(dāng)原圖的size大于ImageView的size時

androd:scaleType=“fit_xy”把圖片按照指定的大小在ImageView中顯示,拉伸顯示圖片,不保持原比例,填滿ImageView.
1、當(dāng)原圖的size小于ImageView的size時,清晰度看起來比較模糊。

2、當(dāng)原圖的size大于ImageView的size時,清晰度看起來比較清晰

android:scaleType=“fit_start”把原圖按照比例放大縮小到ImageView的高度,顯示在ImageView的start(前部/上部)
1、當(dāng)原圖的size小于ImageView的size時,清晰度看起來比較模糊

2、當(dāng)原圖的size大于ImageView的size時,清晰度看起來比較清晰

android:sacleType=“fit_center”把原圖按照比例放大縮小到ImageView的高度,顯示在ImageView的center(中部/居中顯示)
1、當(dāng)原圖的size小于ImageView的size時,清晰度看起來比較模糊

1、當(dāng)原圖的size大于ImageView的size時,清晰度看起來比較清晰

android:scaleType=“fit_end”把原圖按照比例放大縮小到ImageView的高度,顯示在ImageVIew的end(后部/尾部/底部)
1、當(dāng)原圖的size小于ImageView的size時,清晰度看起來比較模糊

2、當(dāng)原圖的size大于ImageView的size時,清晰度看起來比較清晰

到這里就全部解析完了
