在我們平時的開發過程中,可以說圖片展示是每個App必備的,所以我們會用到ImageView圖片控件,對於每個Android開發者來說,這已經非常熟悉了,那有童鞋就會問了:這還有什麼好講的呢?事實確實是這樣嗎?
那我問問你,你確定對ImageView控件的每個屬性都瞭如指掌了嗎?,記得之前面試的時候,很多面試官很喜歡問ScaleType屬性的使用,這就考察你是否真的理解了。之前我也並沒有在意這個屬性的使用,以爲只會在面試的時候才需要用到,事實是我錯了,在最近的開發過程中,使用了大量的圖片展示商品的圖片,而且不同的模塊,圖片的展示還需要不一樣,那麼這個時候ScaleType屬性就發揮作用了,可是這個時候突然發現自己的理解也有點模糊,所以還是有必要重新理解一下這個屬性的用法的,下面我們來看看詳解吧。
當我們設置ImageView的ScaleType屬性時,開發工具中會彈出以下的選項讓你選擇:
首先我們設置ImageView控件填充整個屏幕:
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00c6a6"/>
這個是還沒有設置ScaleType屬性的效果圖:
再來看看我們需要加載的圖片的原圖,準備了兩張不同尺寸的原圖:
大圖:
小圖:
那我們來看看每個選項的效果:
1.android:scaleType=“center”
(1).當原圖的size小於ImageView的size時,保持原圖的大小,顯示在ImageView的中心。
(2).當原圖的size大於ImageView的size時,多出來的部分被截掉。
2.android:scaleType=“center_inside”
以原圖正常顯示爲目的
(1).當原圖的size小於ImageView的size時,不做處理居中顯示圖片.
(2).當原圖的size大於ImageView的size時,就按照比例縮小原圖的寬高,居中顯示在ImageView中.
3.android:scaleType=“center_crop”
以原圖填滿ImageView爲目的
(1).當原圖的size小於ImageView的size時,則按比例拉昇原圖的寬和高,填充ImageView居中顯示。
(2).如果原圖size大於ImageView的size,則與center_inside一樣,按比例縮小,居中顯示在ImageView上。
4.android:scaleType=“matrix”
不改變原圖的大小,從ImageView的左上角開始繪製,超出部分做剪切處理。
(1).當原圖的size小於ImageView的size時
(2).當原圖的size大於ImageView的size時
5.androd:scaleType=“fit_xy”
把圖片按照指定的大小在ImageView中顯示,拉伸顯示圖片,不保持原比例,填滿ImageView.
(1).當原圖的size小於ImageView的size時,清晰度看起來比較模糊。
(2).當原圖的size大於ImageView的size時,清晰度看起來比較清晰。
6.android:scaleType=“fit_start”
把原圖按照比例放大縮小到ImageView的高度,顯示在ImageView的start(前部/上部)。
(1).當原圖的size小於ImageView的size時,清晰度看起來比較模糊。
(2).當原圖的size大於ImageView的size時,清晰度看起來比較清晰。
7.android:sacleType=“fit_center”
把原圖按照比例放大縮小到ImageView的高度,顯示在ImageView的center(中部/居中顯示)。
(1).當原圖的size小於ImageView的size時,清晰度看起來比較模糊。
(2).當原圖的size大於ImageView的size時,清晰度看起來比較清晰。
8.android:scaleType=“fit_end”
把原圖按照比例放大縮小到ImageView的高度,顯示在ImageVIew的end(後部/尾部/底部)
(1).當原圖的size小於ImageView的size時,清晰度看起來比較模糊。
(2).當原圖的size大於ImageView的size時,清晰度看起來比較清晰。
到這裏就全部解析完了。
以下是個人公衆號(longxuanzhigu),之後發佈的文章會同步到該公衆號,方便交流學習Android知識及分享個人愛好的文章,有問題可以留言哦: