個(gè)人知識(shí)總結(jié):View篇--ImageView

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_(kāi)發(fā)中必不可少的一個(gè)控件,主要用于顯示圖片,也可以對(duì)圖片進(jìn)行簡(jiǎn)單的旋轉(zhuǎn),縮放等處理。

ImageView屬性
  • android:src:設(shè)置ImageView所顯示的Drawable對(duì)象的ID。
  • android:adjustViewBounds:設(shè)置ImageView是否調(diào)整自己的邊界來(lái)保持所顯示圖片的長(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中的顯示效果,所以有如下屬性值可以選擇:
    1. matrix:使用matrix方式進(jìn)行縮放。
    2. fitXY:橫向、縱向獨(dú)立縮放,以適應(yīng)該ImageView。
    3. fitStart:保持縱橫比縮放圖片,并且將圖片放在ImageView的左上角。
    4. fitCenter:保持縱橫比縮放圖片,縮放完成后將圖片放在ImageView的中央。
    5. fitEnd:保持縱橫比縮放圖片,縮放完成后將圖片放在ImageView的右下角。
    6. center:把圖片放在ImageView的中央,但是不進(jìn)行任何縮放。
    7. centerCrop:保持縱橫比縮放圖片,以使圖片能完全覆蓋ImageView。
    8. centerInside:保持縱橫比縮放圖片,以使得ImageView能完全顯示該圖片。
  • android:cropToPadding:是否截取指定區(qū)域用空白代替。單獨(dú)設(shè)置無(wú)效果,需要與scrollY一起使用
  • android:tint:將圖片渲染成指定的顏色,一般用于將透明的帶鏤空?qǐng)D案的圖片,根據(jù)不同情況著不同的色

ImageView在xml中設(shè)置的屬性大概就是這些,當(dāng)然那些常用的寬高,背景什么的就沒(méi)有再列舉出來(lái),而在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ò)圖片的話(huà),也可以通過(guò)BItmap將流轉(zhuǎn)換為Bitmap對(duì)象加載,在此也推薦幾個(gè)圖片加載的三方庫(kù):

  1. Glide圖片加載
  2. Picasso圖片加載
  3. ImageLoader圖片加載,這個(gè)工具類(lèi)現(xiàn)在使用的不多了
    這三個(gè)是目前使用量較大的圖片加載圖,都已經(jīng)封裝好了,使用起來(lái)也很方便。
ImageView的子類(lèi)
ImageButton

ImageView的直接子類(lèi)中只有ImageButton可能平時(shí)會(huì)用的比較多一點(diǎn),但是ImageButton里面也沒(méi)有加入什么新的東西,只是在構(gòu)造方法中使用量自己特有的style/

public ImageButton(Context context, AttributeSet attrs) {
        this(context, attrs, com.android.internal.R.attr.imageButtonStyle);
    }

當(dāng)然ImageView的子類(lèi)還有別的,但是其他的我們平時(shí)用的也不是很多,甚至很多基本上不會(huì)用到,所以也就不再介紹了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容