Displays an arbitrary image, such as an icon. The ImageView class can load images from various sources (such as resources or content providers), takes care of computing its measurement from the image so that it can be used in any layout manager, and provides various display options such as scaling and tinting.
ImageView是我們?nèi)粘i_發(fā)中必不可少的一個(gè)控件,主要用于顯示圖片腊尚,也可以對(duì)圖片進(jìn)行簡(jiǎn)單的旋轉(zhuǎn)秩伞,縮放等處理宝踪。
ImageView屬性
- android:src:設(shè)置ImageView所顯示的Drawable對(duì)象的ID。
- android:adjustViewBounds:設(shè)置ImageView是否調(diào)整自己的邊界來保持所顯示圖片的長(zhǎng)寬比,簡(jiǎn)單點(diǎn)就是根據(jù)圖片本身的寬高比例再根據(jù)實(shí)際給定的控件大小對(duì)圖片進(jìn)行等比縮放谊惭,一般用于顯示長(zhǎng)圖
- android:scaleType:設(shè)置所顯示的圖片如何縮放或移動(dòng)以適應(yīng)ImageView的大小蝙场。
對(duì)于scaleType屬性凌停,因?yàn)殛P(guān)于圖像在ImageView中的顯示效果,所以有如下屬性值可以選擇:- matrix:使用matrix方式進(jìn)行縮放售滤。
- fitXY:橫向罚拟、縱向獨(dú)立縮放,以適應(yīng)該ImageView完箩。
- fitStart:保持縱橫比縮放圖片赐俗,并且將圖片放在ImageView的左上角。
- fitCenter:保持縱橫比縮放圖片弊知,縮放完成后將圖片放在ImageView的中央阻逮。
- fitEnd:保持縱橫比縮放圖片,縮放完成后將圖片放在ImageView的右下角秩彤。
- center:把圖片放在ImageView的中央叔扼,但是不進(jìn)行任何縮放。
- centerCrop:保持縱橫比縮放圖片漫雷,以使圖片能完全覆蓋ImageView瓜富。
- centerInside:保持縱橫比縮放圖片,以使得ImageView能完全顯示該圖片降盹。
- android:cropToPadding:是否截取指定區(qū)域用空白代替与柑。單獨(dú)設(shè)置無效果,需要與scrollY一起使用
- android:tint:將圖片渲染成指定的顏色,一般用于將透明的帶鏤空?qǐng)D案的圖片价捧,根據(jù)不同情況著不同的色
ImageView在xml中設(shè)置的屬性大概就是這些丑念,當(dāng)然那些常用的寬高,背景什么的就沒有再列舉出來干旧,而在Java代碼中設(shè)置圖片資源有以下幾種方式:
// 直接用資源id加載
imageView.setImageResource(R.drawable.ic_test);
// 加載Drawable資源對(duì)象
imageView.setImageDrawable(getDrawable(R.drawable.ic_test));
// 加載Bitmap對(duì)象
imageView.setImageBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.ic_test));
當(dāng)然如果是網(wǎng)絡(luò)圖片的話渠欺,也可以通過BItmap將流轉(zhuǎn)換為Bitmap對(duì)象加載,在此也推薦幾個(gè)圖片加載的三方庫(kù):
- Glide圖片加載
- Picasso圖片加載
-
ImageLoader圖片加載椎眯,這個(gè)工具類現(xiàn)在使用的不多了
這三個(gè)是目前使用量較大的圖片加載圖挠将,都已經(jīng)封裝好了,使用起來也很方便编整。
ImageView的子類
ImageButton
ImageView的直接子類中只有ImageButton可能平時(shí)會(huì)用的比較多一點(diǎn)舔稀,但是ImageButton里面也沒有加入什么新的東西,只是在構(gòu)造方法中使用量自己特有的style/
public ImageButton(Context context, AttributeSet attrs) {
this(context, attrs, com.android.internal.R.attr.imageButtonStyle);
}
當(dāng)然ImageView的子類還有別的掌测,但是其他的我們平時(shí)用的也不是很多内贮,甚至很多基本上不會(huì)用到,所以也就不再介紹了汞斧。