Android進階UI之ImageView設置長度高度為wrap_content時高度根據(jù)圖片比例自適應

1 示例

<ImageView?

? ? android:id="@+id/img_1"?

? ? android:layout_width="fill_parent"?

? ? android:layout_height="wrap_content"?

? ? android:adjustViewBounds="true"?

? ? android:scaleType="centerInside"?

? ? android:src="@drawable/img_bg" />

網(wǎng)絡上下載下來的圖片自適應:android:adjustViewBounds=“true”(其詳細解釋在下面)

<ImageView

? ? android:id="@+id/dynamic_item_image"

? ? android:layout_width="wrap_content"

? ? android:layout_height="wrap_content"

? ? android:layout_gravity="top"

? ? android:layout_marginTop="5dip"

? ? android:adjustViewBounds="true"

? ? android:background="@drawable/imageview_background" />

另外鉴逞,android:background="@drawable/imageview_background"是給圖片加了一個邊框,其中imageview_background.xml:

<?xmlversion="1.0" encoding="utf-8"?>

<shape? xmlns:android="http://schemas.android.com/apk/res/android">

<solid

android:color="@color/white"/>

<padding

android:left="5.0dip"

android:top="5.0dip"

android:bottom="5.0dip" />

</shape>

ageView屬性說明

2.1 類概述

顯示任意圖像惋嚎,例如圖標冲甘。ImageView類可以加載各種來源的圖片(如資源或圖片庫)扛或,需要計算圖像的尺寸洲劣,比便它可以在其他布局中使用,并提供例如縮放和著色(渲染)各種顯示選項空幻。

2.2 XML屬性

2.3 scaleType獨立解析

2.3.1 代碼示例

// scaleType屬性既可以在 XML 中設置烁峭,也可以在代碼中設置

android:scaleType="centerInside"? ? ? ? ? //XML中

imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);? ? //代碼中


2.3.2 八個ScaleType,其實可以分為三個類型:

(1)以FIT_開頭的4種秕铛,它們的共同點是都會對圖片進行縮放约郁;

(2)以CENTER_開頭的3種,它們的共同點是居中顯示但两,圖片的中心點會與ImageView的中心點重疊鬓梅;

(3)ScaleType.MATRIX,用矩陣來繪圖谨湘。

2.3.3 ScaleType類型

(1)ScaleType.FIT_CENTER——默認:圖片會被等比縮放到能夠填充ImageView的寬高绽快,并居中展示。(因為圖片寬大于高紧阔,被縮放到ImageView的寬高并居中展示坊罢,上下會留白;如果圖片的高大于寬擅耽,居中顯示就會在左右留白活孩。)

(2)ScaleType.FIT_START:圖片等比縮放到ImageView大小,并放置在ImageView的上邊或左邊展示乖仇。(因為圖片寬大于高憾儒,下半部分留白;如果圖片高大于寬乃沙,右半部份留白航夺。)

(3)ScaleType.FIT_END:圖片等比縮放到ImageView寬高,并放置在控件的下邊或右邊展示崔涂。(因為圖片寬大于高阳掐,上半部分留白;如果圖片高大于寬,左半部分留白缭保。)

(4)ScaleType.FIT_XY:不按比例拉伸圖片完全填充ImageView的寬高汛闸。

(5)ScaleType.CENTER:不使用縮放,按原圖展示圖片艺骂;如果圖片寬高小于ImageView的寬高诸老,那么圖片會被居中顯示。

(6)ScaleType.CENTER_CROP——常用模式:按比例放大原圖直至某邊ImageView的寬高展示钳恕。

(7)ScaleType.CENTER_INSIDE:當原圖的寬或高等于ImageView的寬或高時别伏,按原圖大小居中展示;反之將原圖縮放至ImageView的居中展示忧额。(當圖片大于ImageView的寬或高的厘肮,效果與ScaleType.FIT_CENTER的效果相同;如果圖片是小于ImageView大小睦番,會出來這兩個模式下的差別类茂,如兩種模式下的第二個圖。)

(8)ScaleType.MATRIX:需要與ImageView.setImageMatrix(Matrix matrix) 配合使用托嚣,因為該模式需要用于指定一個變換矩陣用于指定圖片如何展示巩检。其實前面的7種模式都是通過ImageView在內(nèi)部生成了相應的變換矩陣,等于是提供了該模式的一種特定值示启,使用這個模式只要傳入相應矩陣兢哭,也就能實現(xiàn)上述七種顯示效果。

// 在使用時夫嗓,需要先調(diào)用

imageView.setScaleType(ImageView.ScaleType.MATRIX);

// 再調(diào)用

imageView.setImageMatrix(matrix);

// 注意順序不要搞錯迟螺,否則會出現(xiàn)問題的

imageView.setScaleType(ImageView.ScaleType.MATRIX);? //設置為矩陣模式

Matrix matrix = new Matrix();? ? ? ? ? //創(chuàng)建一個單位矩陣

matrix.setTranslate(100, 100);? ? ? ? ? //平移x和y各100單位

matrix.preRotate(30);? ? ? ? ? ? ? ? ? //順時針旋轉(zhuǎn)30度

imageView.setImageMatrix(matrix);? ? ? //設置并應用矩陣


?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市啤月,隨后出現(xiàn)的幾起案子煮仇,更是在濱河造成了極大的恐慌,老刑警劉巖谎仲,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浙垫,死亡現(xiàn)場離奇詭異,居然都是意外死亡郑诺,警方通過查閱死者的電腦和手機夹姥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辙诞,“玉大人辙售,你說我怎么就攤上這事》赏浚” “怎么了旦部?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵祈搜,是天一觀的道長。 經(jīng)常有香客問我士八,道長容燕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任婚度,我火速辦了婚禮蘸秘,結果婚禮上,老公的妹妹穿的比我還像新娘蝗茁。我一直安慰自己醋虏,他們只是感情好,可當我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布哮翘。 她就那樣靜靜地躺著颈嚼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪忍坷。 梳的紋絲不亂的頭發(fā)上粘舟,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天熔脂,我揣著相機與錄音佩研,去河邊找鬼。 笑死霞揉,一個胖子當著我的面吹牛旬薯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播适秩,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼绊序,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了秽荞?” 一聲冷哼從身側(cè)響起骤公,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎扬跋,沒想到半個月后阶捆,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡钦听,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年洒试,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片朴上。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡垒棋,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出痪宰,到底是詐尸還是另有隱情叼架,我是刑警寧澤畔裕,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站乖订,受9級特大地震影響柴钻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜垢粮,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一贴届、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蜡吧,春花似錦毫蚓、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至君仆,卻和暖如春翩概,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背返咱。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工钥庇, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人咖摹。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓评姨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親萤晴。 傳聞我的和親對象是個殘疾皇子吐句,可洞房花燭夜當晚...
    茶點故事閱讀 45,876評論 2 361

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