ImageView的常用屬性:
①、andorid:src 設置圖片來源。屬性值爲android:src="@drawable/圖片名稱"一般使用png或jpg格式的圖片,可以使用的字符:[a-z0-9_],圖片名稱不帶後綴名,不能以數字開頭,不能使用大寫字母,如果要在代碼中設置:用ImageView對象調用setImageResource(R.drawable.xxx);②、android:adjustViewBounds 用於設置 ImageView 是否調整自己的邊界,來保持所顯示圖片的長寬比例(不會截斷圖片)。默認false.③、android:maxHeight 設置 ImageView 的最大高度。需要先設置android:adjustViewBounds爲true,否則不起作用。④、andorid:maxWidth 設置 ImageView 的最大寬度。需要先設置android:adjustViewBounds爲true,否則不起作用。
備註:如果想設置圖片爲固定大小,並且要保持圖片的寬高比,則:1. 設置adjustViewBounds屬性爲true;2. 設置maxHeight,maxWidth;3. 設置layout_width="wrap_content",layout_height="wrap_content".⑤、 android:background 設置背景,src上的圖片會覆蓋在background的上方,在代碼中設置用 ImageView調用setBackgroundResource(R.drawable.xxx);⑥、android:scaleType : 縮放類型 設置所顯示的圖片如何縮放或移動,以適應ImageView的大小。設置所顯示的圖片如何縮放或移動,以適應ImageView的大小。可選項:fitCenter(默認值)、fitStart 、 fitEnd、 fitXY 、 center、centerCrop居中裁剪、centerInside、matrix注意:要把layout_width和layout_height設置爲 match_parent 或 固定值 時android:scaleType屬性纔有效. 不能設置爲wrap_content.
- matrix(原尺寸多餘截掉): 保持原圖大小、從ImageView的左上角的點開始,以矩陣形式繪圖。 超出部分會被截掉.
- fitXY (伸縮填滿):把圖片按照指定的大小在View中顯示,拉伸(壓縮)顯示圖片,不保持原比例,填滿View. 如果未指定長寬,則受限於手機屏幕.
- fitStart:把圖片按比例擴大(縮小)到View的寬度(或高度),不截斷,顯示在View的上部分位置
- fitCenter (默認值):把圖片按比例擴大(縮小)到View的寬度(或高度),不截斷,居中顯示
- fitEnd :把圖片按比例擴大(縮小)到View的寬度(或高度),不截斷,顯示在View的下部分位置
- center(原尺寸居中,多餘的截掉) : 以原圖的幾何中心點和ImagView的幾何中心點爲基準,按圖片的原來size居中顯示,不縮放. 當圖片長/寬超過View的長/寬,則截取圖片的居中部分顯示. 當圖片小於View 的長寬時,只顯示原圖片的尺寸,不拉伸。
- centerCrop(按比例伸縮,多餘截掉並使 圖填滿Imageview) :以原圖的幾何中心點和ImagView的幾何中心點爲基準,按比例擴大(圖片小於View的寬時)圖片的size。 居中顯示,使得圖片長 (寬)等於或大於View的長(寬),並按View的大小截取圖片。 當原圖的size大於ImageView時,按比例縮小圖片,使得長寬中有一向等於ImageView,另一向大於ImageView。 實際上,使得原圖的size大於等於ImageView .
簡言之,均衡的縮放圖像(保持圖像原始比例),使圖片的兩個座標(寬、高)都大於等於 相應的視圖座標。使圖像位於視圖的中央。- centerInside(大圖按比例縮小後完整居中,小圖不變) :以原圖的幾何中心點和ImagView的幾何中心點爲基準,將圖片的內容完整居中顯示, 如果原圖較大,通過按比例縮小原來的size使得圖片長(寬)等於或小於ImageView的長(寬);原圖較小則不放大(fitCenter會將小圖放大).
總結:上述屬性值中的1,2,51個:不保證尺寸和比例,只填滿,不截: fitXY2個: 保持原圖尺寸超出部分截掉的:matrix,center
5個:按比例縮放的:fitCenter( 不截,小圖會放大) , fitStart( 不截), fitEnd( 不截),centerCrop(滿後超截) , centerInside(不截,小圖不放大)用電子表格比較:
比較方面 比例不變 尺寸不變 超出截掉 小圖可放大 大圖可縮小 填滿高度或寬度 填滿整個ImageView fitCenter y n n y y y n centerInside y n n y y y n 根據需求來決定使用何種縮放模式.