安卓開發學習日記4-ImageView(圖像視圖)

ImageView 繼承自View組件,主要功能是用於顯示圖片,實際上它不僅僅可以用來顯示圖片,任何Drawable對象都可以使用ImageView來顯示。ImageView可以適用於任何佈局中,並且Android爲其提供了縮放和着色的一些操作。

1. foreground、src 和 background 屬性區別

1)background指的是背景,foreground指的是前景,而src指的是內容;三者可以同時使用;
2)src填入圖片時,是按照圖片大小直接填充,並不會進行拉伸;而使用backgroundforeground填入圖片,則是會根據ImageView給定的寬度來進行拉伸;
3)backgroundforeground是所有view都有的屬性,總是縮放到view的大小,不受scaleType影響;而src是ImageView特有屬性,它會受到scaleType的影響。

2.adjustViewBounds設置縮放是否保存原圖長寬比

ImageView爲我們提供了adjustViewBounds屬性,用於設置縮放時是否保持原圖長寬比! 單獨設置不起作用,需要配合maxWidth和maxHeight屬性一起使用!而後面這兩個屬性 也是需要adjustViewBounds爲true纔會生效的~

  • android:maxHeight:設置ImageView的最大高度

  • android:maxWidth:設置ImageView的最大寬度

3.scaleType設置縮放類型

android:scaleType用於設置顯示的圖片如何縮放或者移動以適應ImageView的大小 Java代碼中可以通過imageView.setScaleType(ImageView.ScaleType.CENTER);來設置~ 可選值如下:

  • fitXY:對圖像的橫向與縱向進行獨立縮放,使得該圖片完全適應ImageView,但是圖片的橫縱比可能會發生改變
  • fitStart:保持縱橫比縮放圖片,知道較長的邊與Image的編程相等,縮放完成後將圖片放在ImageView的左上角
  • fitCenter:同上,縮放後放於中間;
  • fitEnd:同上,縮放後放於右下角;
  • center:保持原圖的大小,顯示在ImageView的中心。當原圖的size大於ImageView的size,超過部分裁剪處理。
  • centerCrop:保持橫縱比縮放圖片,知道完全覆蓋ImageView,可能會出現圖片的顯示不完全
  • centerInside:保持橫縱比縮放圖片,直到ImageView能夠完全地顯示圖片
  • matrix:默認值,不改變原圖的大小,從ImageView的左上角開始繪製原圖, 原圖超過ImageView的部分作裁剪處理

ps:一般情況下可以用centerInside來設置縮放類型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章