1. 程式人生 > >Android imageView圖片按比例縮放

Android imageView圖片按比例縮放

android:scaleType可控制圖片的縮放方式,示例程式碼如下:

  1. <ImageViewandroid:id="@+id/img"
  2.     android:src="@drawable/logo"
  3.     android:scaleType="centerInside"
  4.     android:layout_width="60dip"
  5.     android:layout_height="60dip"
  6.     android:layout_centerVertical="true"/>

說明:centerInside表示按比例縮放圖片,使得圖片長 (寬)的小於等於檢視的相應維度。
  注意:控制的圖片為資源而不是背景,即android:src="@drawable/logo",而非android:background="@drawable/logo",我就笨笨地犯了這個低階錯誤,導致錯怪人家scaleType不起作用。程式中動態載入圖片也類似,如:應該imgView.setImageResource(R.drawable.*); 而非imgView.setBackgroundResource(R.drawable.*); 附:更詳細的scaleType說明:

android:scaleType是控制圖片如何resized/moved來匹對ImageView的size。

ImageView.ScaleType / android:scaleType值的意義區別:

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的大小顯示

MATRIX / matrix 用矩陣來繪製,動態縮小放大圖片來顯示。

** 要注意一點,Drawable資料夾裡面的圖片命名是不能大寫的。