日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android中ImageView的scaleType 属性说明。

發布時間:2023/12/3 Android 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android中ImageView的scaleType 属性说明。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ImageView是Android中最常用的控件之一,在使用ImageView的時候,必不可少的會使用到scaleType屬性,該屬性指定了你的ImageView如何顯示圖片。包括是否進行縮放,等比縮放,縮放后顯示的位置,
Android中提供了八種scaleType的屬性,每種都對應了一種展示方式,
這個是測試放到ImageView中的圖從左到右依次有各個角色,便于區分,這張圖是1920*1080,無論長寬都比測試所用的ImageView大。

這個是用于測試的ImageView布局:

<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/colorAccent"><ImageViewandroid:id="@+id/image_view"android:layout_width="300dip"android:layout_height="300dip"android:layout_gravity="center"android:background="@android:color/holo_purple"/></FrameLayout>

可以看到ImageView是正方形的,其背景色為紫色,父布局設置其背景色為紅色,這樣可以很容易看到各個控件的大小。在手機上這個布局看起來是這個樣子的,紫色空間就是ImageView

scaleType屬性既可以在 XML 中設置,也可以在代碼中設置:android:scaleType=“centerInside” //XML中
imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); //代碼中

八個scaleType,其中可以分為三個類型。
1、以FIT_開頭的4種,他們的共同特點是都會對圖片進行縮放。
2、以Center_開頭的,他們的共同特點是居中顯示,圖片的中心點會與ImageView的中心點重疊。
3、ScaleType.MATRIX,這種就直接翻到最后看內容吧;
ScaleType.FIT_CENTER 默認
該模式是ImageView的默認模式,如果沒有設置ScaleType時,將采用這種模式展示圖片,在該模式下,圖片會被等比縮放到能夠填充控件大小,并居中顯示

這里例子里因為圖片寬大于高,于是被縮放到控件大小并居中展示,上下會留白。如果圖片的高大于寬,那么居中顯示就會在左右留白。
ScaleType.FIT_START
圖片等比例縮放到控件大小,并放置在控件的上邊或左邊展示,此模式下會在ImageView的下部分留白,如果圖片高度大于寬度,那么會在ImageView的右部分留白。
ScaleType.FIT_END
圖片等比縮放到控件大小,并放置在控件的下邊或右邊展示。如圖所示,此模式下會在ImageView的上半部分留白,如果圖片高度大于寬,那么就會在ImageView的左半部分留白。
ScaleType.FIT_XY
圖片縮放到控件大小,完全填充控件大小展示。注意,此模式不是等比縮放。這個模式理解也是最簡單的,如圖:

ScaleType.CENTER
不使用縮放,ImageView會展示圖片的中心部分,即圖片的中心點和ImageView的中心點重疊,如圖。如果圖片的大小小于控件的寬高,那么圖片會被居中顯示。

ScaleType.CENTER_CROP
在該模式下,圖片會被等比縮放直到完全填充整個ImageView,并居中顯示。該模式也是最常用的模式了。如圖可以看到,圖片的高度是能完全展示出來的:

ScaleType.CENTER_INSIDE
使用此模式以完全展示圖片的內容為目的。圖片將被等比縮放到能夠完整展示在ImageView中并居中,如果圖片大小小于控件大小,那么就直接居中展示該圖片:
這里大家看到這個模式的效果與ScaleType.FIT_CENTER的效果相同,這是因為所用圖片是是大于ImageView的大小的,如果圖片是小于控件大小,那么就能夠看出來這兩個模式下的差別了。

ScaleType.MATRIX
一般情況下重點都放在最后,在這八種ScaleType中,這個模式就是重點了。該模式需要與ImageView.setImageMatrix(Matrix matrix) 配合使用,因為該模式需要用于指定一個變換矩陣用于指定圖片如何展示。其實前面的7種模式都是通過ImageView在內部生成了相應的變換矩陣,等于是提供了該模式的一種特定值,使用這個模式只要傳入相應矩陣,也就能實現上述七種顯示效果。
關于如何使用矩陣的內容,不是很快能說完,所以這里就不說了。
另外注意,在使用時,需要先調用
imageView.setScaleType(ImageView.ScaleType.MATRIX);

再調用
imageView.setImageMatrix(matrix);

注意順序不要搞錯,否則會出現問題的。下面看一下代碼:
imageView.setScaleType(ImageView.ScaleType.MATRIX); //設置為矩陣模式

Matrix matrix = new Matrix(); //創建一個單位矩陣
matrix.setTranslate(100, 100); //平移x和y各100單位
matrix.preRotate(30); //順時針旋轉30度
imageView.setImageMatrix(matrix); //設置并應用矩陣

每行代碼都有注釋,其展示的效果如下圖顯示。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Android中ImageView的scaleType 属性说明。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。