国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

實(shí)例解析Android ImageView的scaleType屬性

2020-04-11 10:58:02
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

這篇隨筆將會(huì)簡(jiǎn)單的記錄下ImageView這個(gè)控件的一些使用方法,以及其最重要的一個(gè)屬性: scaleType

ImageView這個(gè)控件是用來(lái)顯示圖片用的,例如我們可以通過(guò)下面這段xml配置來(lái)聲明顯示一張圖片:

<ImageViewandroid:id="@+id/imageView"android:layout_width="100dp"android:layout_height="100dp"android:src="@drawable/ic_launcher"/> 

其中src就是引用我們需要使用的圖片,其可以是存放在 assets 目錄下的圖片,也可以是res/drawable目錄下的圖片,還可以是網(wǎng)絡(luò)上的圖片。我們這里是將圖片放在了 res/drawable這個(gè)目錄下,然后通過(guò)其自動(dòng)生成的ID來(lái)引用這個(gè)圖片,我們同樣可以在Java代碼中通過(guò)ImageView這個(gè)對(duì)象來(lái)設(shè)置我們要引用的圖片

    ImageView imageView = (ImageView)findViewById(R.id.iamgeView1);// 通過(guò)setImageResource()來(lái)設(shè)置引用的圖片imageView.setImageResource(R.id.iamgeView1); 

接下來(lái)我們來(lái)看看ImageView中最重要的一個(gè)屬性:scaleType,這個(gè)屬性是用來(lái)控制我們的圖片怎樣縮擴(kuò)或者移動(dòng)來(lái)匹配我們和ImageView本身設(shè)置的大小。

其擁有許多的值,我們接下來(lái)根據(jù)代碼來(lái)看看每個(gè)值所代表的含義:

①fitCenter:這個(gè)值指的是,當(dāng)我這張圖片比ImageView大的時(shí)候,就會(huì)按照比例對(duì)圖片進(jìn)行縮放,并將圖片居中顯示。如果這張圖片比ImageView小,那么就會(huì)根據(jù)比例對(duì)圖片進(jìn)行擴(kuò)大,然后將其居中顯示,注意:如果圖片分辨率不是兩個(gè)相等的值,例如480*320,那么因?yàn)榭s放比例不同,fitCenter設(shè)置后,其會(huì)根據(jù)小的分辨率進(jìn)行縮小,例如會(huì)根據(jù)320來(lái)進(jìn)行縮放或者擴(kuò)大

<ImageView android:id="@+id/iamgeView1"android:layout_width="100dp"android:layout_height="100dp"android:src="@drawable/dog"android:background="#ABCDEF"android:scaleType="fitCenter"/><ImageViewandroid:id="@+id/imageView2"android:layout_width="100dp"android:layout_height="100dp"android:background="#FEDCBA"android:src="@drawable/ic_launcher"android:scaleType="fitCenter"/> 

我們看到,這里引用了兩張圖片,第一張dog圖片是比ImageView大的,第二張ic_launcher是比ImageView小的,我們?cè)O(shè)置其scaleType后,其顯示效果如下:


我們看到,因?yàn)榈谝粡垐D片分辨率不是兩個(gè)相等的數(shù),那么就會(huì)留出一些邊出來(lái)

②fitStart、fitEnd屬性:這個(gè)屬性跟fitCenter類似,當(dāng)圖片大小與ImageView不相等時(shí),其會(huì)按照比例對(duì)圖片進(jìn)行縮小或者放大,其參考的方向是根據(jù)分辨率大的那一方,例如480*320,則會(huì)參考480那方作為上下,如果是fitStart,則會(huì)將圖片上邊跟ImageView對(duì)其,fitEnd則會(huì)將圖片下邊與ImageView對(duì)其

<ImageView android:id="@+id/iamgeView1"android:layout_width="100dp"android:layout_height="100dp"android:src="@drawable/dog"android:background="#ABCDEF"android:scaleType="fitStart"/><ImageViewandroid:id="@+id/imageView2"android:layout_width="100dp"android:layout_height="100dp"android:background="#FEDCBA"android:src="@drawable/ic_launcher"android:scaleType="fitStart"/> 


我們看到,其會(huì)根據(jù)480那個(gè)分辨率向上對(duì)其,如果設(shè)置成fitStart,反之,設(shè)置成fitEnd,則會(huì)向下對(duì)其

③center:如果設(shè)置成center的話,那么圖片就會(huì)截取中間的那部分顯示在ImageView里面,不會(huì)對(duì)圖片進(jìn)行縮小或者放大

<ImageView android:id="@+id/iamgeView1"android:layout_width="100dp"android:layout_height="100dp"android:src="@drawable/dog"android:background="#ABCDEF"android:scaleType="center"/><ImageViewandroid:id="@+id/imageView2"android:layout_width="100dp"android:layout_height="100dp"android:background="#FEDCBA"android:src="@drawable/ic_launcher"android:scaleType="center"/> 

④centerInside:設(shè)置這個(gè)屬性值后,如果圖片的大小比ImageView大,那么就根據(jù)比例對(duì)圖片進(jìn)行縮小并將其居中顯示,如果圖片比ImageView小,那么則不會(huì)對(duì)圖片進(jìn)行擴(kuò)大處理,而是直接對(duì)其進(jìn)行居中顯示:

<ImageView android:id="@+id/iamgeView1"android:layout_width="100dp"android:layout_height="100dp"android:src="@drawable/dog"android:background="#ABCDEF"android:scaleType="centerInside"/><ImageViewandroid:id="@+id/imageView2"android:layout_width="100dp"android:layout_height="100dp"android:background="#FEDCBA"android:src="@drawable/ic_launcher"android:scaleType="centerInside"/> 

⑤centerCrop:如果圖片比ImageView大,那么則會(huì)對(duì)其進(jìn)行縮小,但是并不會(huì)像fitCenter或者centerInside那樣是根據(jù)比例縮放,centerCrop設(shè)置后,其縮放的時(shí)候會(huì)將整個(gè)ImageView的邊都占據(jù)滿,不會(huì)留出空隙,然后再將圖片居中顯示,如果圖片小的話,就會(huì)對(duì)其進(jìn)行擴(kuò)大,并占滿ImageView的邊框,再居中顯示:

<ImageView android:id="@+id/iamgeView1"android:layout_width="100dp"android:layout_height="100dp"android:src="@drawable/dog"android:background="#ABCDEF"android:scaleType="centerCrop"/><ImageViewandroid:id="@+id/imageView2"android:layout_width="100dp"android:layout_height="100dp"android:background="#FEDCBA"android:src="@drawable/ic_launcher"android:scaleType="centerCrop"/>

我們同樣可以在java代碼中來(lái)設(shè)置scaleType這個(gè)屬性:

ImageView imageView = (ImageView)findViewById(R.id.iamgeView1);imageView.setScaleType(ScaleType.CENTER_CROP); 

這幾個(gè)就是我們常用的幾個(gè)scaleType屬性,我們可以根據(jù)需要來(lái)設(shè)置不同的屬性值來(lái)達(dá)到圖片和ImageView大小匹配的效果

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 廉江市| 金秀| 广西| 治多县| 甘泉县| 保山市| 深水埗区| 股票| 安仁县| 鄂伦春自治旗| 永顺县| 普格县| 屯留县| 随州市| 灵石县| 孟连| 丰台区| 措美县| 小金县| 商城县| 烟台市| 福清市| 佛冈县| 上林县| 婺源县| 阿克陶县| 定陶县| 浪卡子县| 顺义区| 原平市| 甘南县| 神农架林区| 海盐县| 泸州市| 大新县| 郁南县| 岑巩县| 盐城市| 昭平县| 五寨县| 墨竹工卡县|