android:scaletype可控制圖檔的縮放方式,示例代碼如下:
<code>1</code>
<code><</code><code>imageview</code> <code>android:id</code><code>=</code><code>"@+id/img"</code>
<code>2</code>
<code> </code><code>android:src</code><code>=</code><code>"@drawable/logo"</code>
<code>3</code>
<code> </code><code>android:scaletype</code><code>=</code><code>"centerinside"</code>
<code>4</code>
<code> </code><code>android:layout_width</code><code>=</code><code>"60dip"</code>
<code>5</code>
<code> </code><code>android:layout_height</code><code>=</code><code>"60dip"</code>
<code>6</code>
<code> </code><code>android:layout_centervertical</code><code>=</code><code>"true"</code><code>/></code>
說明:centerinside表示按比例縮放圖檔,使得圖檔長 (寬)的小于等于視圖的相應次元。
注意:控制的圖檔為資源而不是背景,即android:src="@drawable/logo",而非android::background="@drawable/logo",我就笨笨地犯了這個低級錯誤,導緻錯怪人家scaletype不起作用。程式中動态加載圖檔也類似,如:應該imgview.setimageresource((integer)mdata.get(position).get("img"));而非imgview.setbackgroundresource((integer)mdata.get(position).get("img"));
附:更詳細的scaletype說明:
center /center 在視圖中心顯示圖檔,并且不縮放圖檔
center_crop / centercrop 按比例縮放圖檔,使得圖檔長 (寬)的大于等于視圖的相應次元
center_inside / centerinside 按比例縮放圖檔,使得圖檔長 (寬)的小于等于視圖的相應次元
fit_center / fitcenter 按比例縮放圖檔到視圖的最小邊,居中顯示
fit_end / fitend 按比例縮放圖檔到視圖的最小邊,顯示在視圖的下部分位置
fit_start / fitstart 把圖檔按比例擴大/縮小到視圖的最小邊,顯示在視圖的上部分位置
fit_xy / fitxy 把圖檔不按比例縮放到視圖的大小顯示
matrix / matrix 用矩陣來繪制