ImageView 常見知識(shí)

作用

ImageView,圖像視圖,直接繼承自View類,它的主要功能是用于顯示圖片,實(shí)際上它不僅僅可以用來顯示圖片,任何Drawable對(duì)象都可以使用ImageView來顯示。ImageView可以適用于任何布局中,并且Android為其提供了縮放和著色的一些操作

src 和 background 屬性

一言以蔽之

  • src (前景):setImageDrawable( );
  • background (背景):setBackgroundDrawable( );

區(qū)別

  • src 存放的是原圖大小,不進(jìn)行拉伸,在 View中位置通過 scaleType 屬性設(shè)置
  • background 根據(jù)給定的 width 和 height 進(jìn)行拉伸,可以設(shè)置透明度
  • 兩屬性可以同時(shí)在 xml 或者 java 代碼中使用

scaleType說明

  • android:scaleType=”center”
    保持原圖的大小,顯示在 ImageView 的中心。當(dāng)原圖的 size 大于 ImageView 的 size,超過部分裁剪處理
  • android:scaleType=”centerCrop”
    以填滿整個(gè) ImageView 為目的,將原圖的中心對(duì)準(zhǔn) ImageView 的中心,等比例放大原圖,直到填滿 ImageView 為止(指的是 ImageView 的寬和高都要填滿),原圖超過 ImageView 的部分作裁剪處理
  • android:scaleType=”centerInside”
    以原圖完全顯示為目的,將圖片的內(nèi)容完整居中顯示,通過按比例縮小原圖的 size 寬(高)等于或小于 ImageView 的寬(高)。如果原圖的 size 本身就小于 ImageView 的
    size,則原圖的 size 不作任何處理,居中顯示在 ImageView
  • android:scaleType=”matrix” (默認(rèn)方式)
    不改變?cè)瓐D的大小,從 ImageView 的左上角開始繪制原圖,原圖超過 ImageView 的部分作裁剪處理
  • android:scaleType=”fitCenter”
    把原圖按比例擴(kuò)大或縮小到 ImageView 的最小邊,居中顯示
  • android:scaleType=”fitEnd”
    把原圖按比例擴(kuò)大(縮小)到 ImageView 的高度,顯示在 ImageView 的下部分位置
  • android:scaleType=”fitStart”
    把原圖按比例擴(kuò)大(縮小)到 ImageView 的高度,顯示在 ImageView 的上部分位置
  • android:scaleType=”fitXY”
    把原圖按照指定的大小在 ImageView 中顯示,拉伸顯示圖片,不保持原比例,填滿 ImageView

透明度 alpha 的坑

ImageView 設(shè)置透明度主要有以下三種方法:

  • setAlpha(@FloatRange(from=0.0, to=1.0) float alpha) (View提供)
  • setAlpha(int alpha) (已經(jīng)標(biāo)記為@Deprecated)
  • setImageAlpha(int alpha) (API>=16)
    其中,setImageAlpha(int alpha) 內(nèi)部調(diào)用 setAlpha(int alpha) 方法,查看 API 可知,setImageAlpha 主要是針對(duì) image 而言,一方面在命名上更為貼切與 View 中的
    setAlpha 方法區(qū)分,同時(shí)做好兼容性。那 ImageView.setAlpha(0.7f) 來設(shè)置ImageView 的透明度對(duì) src 還是 background 有效果呢?正確答案:
  • android:src 在設(shè)置 ImageView 的 setAlpha(int alpha) 時(shí),起作用;
  • android:background 在設(shè)置 ImageView 的 setAlpha(int alpha) 時(shí),不起作用
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容