一.ImageView的常用屬性(https://www.runoob.com/w3cnote/android-tutorial-imageview.html)
1.src屬性和background屬性的區(qū)別:
在API文檔中我們發(fā)現(xiàn)ImageView有兩個(gè)可以設(shè)置圖片的屬性,分別是:src和background
常識:
①background通常指的都是背景,而src指的是內(nèi)容!!
②當(dāng)使用src填入圖片時(shí),是按照圖片大小直接填充,并不會進(jìn)行拉伸
而使用background填入圖片,則是會根據(jù)ImageView給定的寬度來進(jìn)行拉伸
2.adjustViewBounds設(shè)置縮放是否保存原圖長寬比
ImageView為我們提供了adjustViewBounds屬性,用于設(shè)置縮放時(shí)是否保持原圖長寬比! 單獨(dú)設(shè)置不起作用,
需要配合maxWidth和maxHeight屬性一起使用!而后面這兩個(gè)屬性 也是需要adjustViewBounds為true才會生效的~
android:maxHeight:設(shè)置ImageView的最大高度
android:maxWidth:設(shè)置ImageView的最大寬度
3.scaleType設(shè)置縮放類型
android:scaleType用于設(shè)置顯示的圖片如何縮放或者移動以適應(yīng)ImageView的大小 Java代碼中可以通過imageView.setScaleType(ImageView.ScaleType.CENTER);來設(shè)置~ 可選值如下:
fitXY:對圖像的橫向與縱向進(jìn)行獨(dú)立縮放,使得該圖片完全適應(yīng)ImageView,但是圖片的橫縱比可能會發(fā)生改變
fitStart:保持縱橫比縮放圖片,知道較長的邊與Image的編程相等,縮放完成后將圖片放在ImageView的左上角
fitCenter:同上,縮放后放于中間;
fitEnd:同上,縮放后放于右下角;
center:保持原圖的大小,顯示在ImageView的中心。當(dāng)原圖的size大于ImageView的size,超過部分裁剪處理。
centerCrop:保持橫縱比縮放圖片,知道完全覆蓋ImageView,可能會出現(xiàn)圖片的顯示不完全
centerInside:保持橫縱比縮放圖片,直到ImageView能夠完全地顯示圖片
matrix:默認(rèn)值,不改變原圖的大小,從ImageView的左上角開始繪制原圖, 原圖超過ImageView的部分作裁剪處理
1)1.fitEnd,fitStart,fitCenter
這里以fitEnd為例,其他兩個(gè)類似:
示例代碼:
<!-- 保持圖片的橫縱比縮放,知道該圖片能夠顯示在ImageView組件上,并將縮放好的圖片顯示在imageView的右下角 -->
<ImageView
android:id="@+id/imageView3"
android:layout_width="300px"
android:layout_height="300px"
android:layout_margin="5px"
android:scaleType="fitEnd"
android:src="@mipmap/meinv" />
2)centerCrop與centerInside
centerCrop:按橫縱比縮放,直接完全覆蓋整個(gè)ImageView(完成覆蓋這個(gè)ImageView的大小,圖片可能顯示不完全)
centerInside:按橫縱比縮放,使得ImageView能夠完全顯示這個(gè)圖片(完全顯示圖片,不一定完全填充ImageView)
3)fitXY
不按比例縮放圖片,目標(biāo)是把圖片塞滿整個(gè)View
4)matrix
從ImageView的左上角開始繪制原圖,原圖超過ImageView的部分作裁剪處理
5)center
保持原圖的大小,顯示在ImageView的中心。當(dāng)原圖的size大于ImageView的size,超過部分裁剪處理。