1. 程式人生 > >ImageView的src和background的區別、padding的使用技巧、ImageView根據螢幕對縮放

ImageView的src和background的區別、padding的使用技巧、ImageView根據螢幕對縮放

一、ImageView中XML屬性src和background的區別:

background會根據ImageView元件給定的長寬進行拉伸,而src就存放的是原圖的大小,不會進行拉伸 。src是圖片內容(前景),bg是背景,可以同時使用。

此外: scaleType只對src起作用;bg可設定透明度,比如在ImageButton中就可以用android:scaleType控制圖片的縮放方式

二、padding的使用技巧:

如果ImageView 只設置了background 則padding不生效,只設置src的的padding就會生效。同時設定background和src 則padding不生效。

示例程式碼:

<ImageView
android:id="@+id/buy"
android:layout_width="42dp"
android:layout_height="42dp"
android:layout_centerVertical="true"
android:padding="10dp"
android:layout_marginLeft="22.5dp"
android:src="@mipmap/u66"
/>

三、ImageView如何根據螢幕不同進行縮放

private ImageView mine_headerimg, 
mine_headerimg
= (ImageView) mContentView.findViewById(R.id.mine_headerimg);
//根據螢幕進行比例縮放
ViewGroup.LayoutParams layoutParams2 = mine_headerimg.getLayoutParams();
int screenWidthPixels = DensityUtil.getScreenWidthPixels(getActivity());//程式碼如下
layoutParams2.height = 1412 * screenWidthPixels / 3000;
mine_headerimg.setLayoutParams
(layoutParams2);
/**
 * 獲取螢幕寬度
 */
public static int getScreenWidthPixels(Activity context) {
    DisplayMetrics metric = new DisplayMetrics();
context.getWindowManager().getDefaultDisplay().getMetrics(metric);
    return metric.widthPixels;
}

簡單說明下,這裡是根據mine_headerimg裡圖片的大小 長度3000 高度1412(16:9)。這樣圖片就會根據不同的螢幕解析度來顯示不同的尺寸。