摘要:啟用或停用位圖過濾。當(dāng)位圖收縮或拉伸以使其外觀平滑時(shí)使用過濾。在每個(gè)狀態(tài)變更期間,將從上到下遍歷狀態(tài)列表,并使用第一個(gè)與當(dāng)前狀態(tài)匹配的項(xiàng)目此選擇并非基于最佳匹配,而是選擇符合狀態(tài)最低條件的第一個(gè)項(xiàng)目。每個(gè)可繪制對(duì)象由單一元素內(nèi)的元素表示。
極力推薦文章:歡迎收藏
Android 干貨分享
Drawable 是Android 中圖像顯示的常用方法。
概念:Drawable 是指可在屏幕上繪制的圖形,已經(jīng)通過getDrawable(int)等API檢索或者應(yīng)用到具有 android:drawable 和 android:icon 等屬性的其他 XML 資源的圖形。
本篇文章主要介紹 Android 開發(fā)中的部分知識(shí)點(diǎn),通過閱讀本篇文章,您將收獲以下內(nèi)容:
1.Drawable 簡介 繼承關(guān)系如下:
Drawable 分類
Bitmap 位圖 BitmapDrawable
可拉伸圖(*.9.png) NinePatchDrawable。
圖層 LayerDrawable
不同狀態(tài)圖(選擇器) StateListDrawable
級(jí)別列表 LevelListDrawable
轉(zhuǎn)換圖像 TransitionDrawable
插入可繪制對(duì)象
剪裁可繪制對(duì)象 ClipDrawable
縮放可繪制對(duì)象 ScaleDrawable
形狀可繪制對(duì)象 ShapeDrawable
Drawable與 Bitmap 常用方法總結(jié)
[java.lang.Object] ???? android.graphics.drawable.DrawableDrawable 分類如下:
Bitmap 位圖 BitmapDrawable
可拉伸圖(*.9.png) NinePatchDrawable。
圖層 LayerDrawable
不同狀態(tài)圖(選擇器) StateListDrawable
級(jí)別列表 LevelListDrawable
轉(zhuǎn)換圖像 TransitionDrawable
插入可繪制對(duì)象
剪裁可繪制對(duì)象 ClipDrawable
縮放可繪制對(duì)象 ScaleDrawable
形狀可繪制對(duì)象 ShapeDrawable
資源引用:在 Java 中:
R.drawable.filename
在 XML 中:
@[package:]drawable/filename
位圖圖像。Android 支持以下三種格式的位圖文件:.png(首選)、.jpg(可接受)、.gif(不建議)。這些文件保存到 res/drawable/ 目錄中
在構(gòu)建過程中,可通過 aapt 工具自動(dòng)優(yōu)化位圖文件,對(duì)圖像進(jìn)行無損壓縮。例如,不需要超過 256 色的真彩色 PNG 可通過調(diào)色板轉(zhuǎn)換為 8 位 PNG。這樣產(chǎn)生的圖像質(zhì)量相同,但所需內(nèi)存更少。因此請注意,此目錄中的圖像二進(jìn)制文件在構(gòu)建時(shí)可能會(huì)發(fā)生變化。如果您計(jì)劃將圖像解讀為比特流以將其轉(zhuǎn)換為位圖,請改為將圖像放在 res/raw/ 文件夾中,在那里它們不會(huì)進(jìn)行優(yōu)化
使用方法如下:
1.常規(guī)位圖XML 布局中使用方法
Java 代碼中使用方法
getResources().getDrawable(R.drawable.xml_bitmap)2.XML 位圖
在XML中創(chuàng)建位圖資源文件
注意一下屬性使用方法:
antialias
啟用、停用抗鋸齒
dither
當(dāng)位圖的像素配置與屏幕不同時(shí)(例如:`RGB 8888 `位圖和 `RGB 565 `屏幕),啟用或停用位圖抖動(dòng)。
filter
啟用或停用位圖過濾。當(dāng)位圖收縮或拉伸以使其外觀平滑時(shí)使用過濾。
mipmap
啟用或停用` mipmap `提示
5.tileMode
定義平鋪模式。當(dāng)平鋪模式啟用時(shí),位圖會(huì)重復(fù)。重力在平鋪模式啟用時(shí)將被忽略
xml_bitmap 位圖實(shí)現(xiàn)
引用XML位圖資源方法
java 代碼實(shí)現(xiàn)方法
2. 可拉伸圖(*.9.png) NinePatchDrawable。NinePatch 是一種 PNG 圖像,在其中可定義當(dāng)視圖中的內(nèi)容超出正常圖像邊界時(shí) Android 縮放的可拉伸區(qū)域。此類圖像通常指定為至少有一個(gè)尺寸設(shè)置為 "wrap_content" 的視圖的背景,而且當(dāng)視圖擴(kuò)展以適應(yīng)內(nèi)容時(shí),九宮格圖像也會(huì)擴(kuò)展以匹配視圖的大小。Android 的標(biāo)準(zhǔn) Button 小部件使用的背景就是典型的九宮格圖像,其必須拉伸以適應(yīng)按鈕內(nèi)的文本(或圖像)。
常規(guī)使用方法同其他圖片引用方式
XML .9.png 圖片同Bitmap XML的使用方式
3. 圖層 LayerDrawable
LayerDrawable 是管理其他可繪制對(duì)象陣列的可繪制對(duì)象。列表中的每個(gè)可繪制對(duì)象按照列表的順序繪制,列表中的最后一個(gè)可繪制對(duì)象繪于頂部。每個(gè)可繪制對(duì)象由單一
4. 不同狀態(tài)圖(選擇器) StateListDrawable
StateListDrawable 是在 XML 中定義的可繪制對(duì)象,它根據(jù)對(duì)象的狀態(tài),使用多個(gè)不同的圖像來表示同一個(gè)圖形。例如,Button 小部件可以是多種不同狀態(tài)(按下、聚焦或這兩種狀態(tài)都不是)中的其中一種,而且可以利用狀態(tài)列表可繪制對(duì)象為每種狀態(tài)提供不同的背景圖片。
您可以在 XML 文件中描述狀態(tài)列表。每個(gè)圖形由單一
在每個(gè)狀態(tài)變更期間,將從上到下遍歷狀態(tài)列表,并使用第一個(gè)與當(dāng)前狀態(tài)匹配的項(xiàng)目 —此選擇并非基于“最佳匹配”,而是選擇符合狀態(tài)最低條件的第一個(gè)項(xiàng)目。
此方法非常常用,比如狀態(tài)選擇器
常規(guī)使用方法同其他圖片引用方式
選擇器 XML的使用方式
5. 級(jí)別列表 LevelListDrawable管理大量備選可繪制對(duì)象的可繪制對(duì)象,每個(gè)可繪制對(duì)象都分配有最大的備選數(shù)量。使用 setLevel() 設(shè)置可繪制對(duì)象的級(jí)別值會(huì)加載級(jí)別列表中 android:maxLevel 值大于或等于傳遞到方法的值的可繪制對(duì)象資源。
資源引用:
在 Java 中:
R.drawable.filename
在 XML 中:
@[package:]drawable/filename
可通過 setLevel() 或 setImageLevel() 更改級(jí)別。
6. 轉(zhuǎn)換圖像 TransitionDrawableTransitionDrawable 是可在兩種可繪制對(duì)象資源之間交錯(cuò)淡出的可繪制對(duì)象。
每個(gè)可繪制對(duì)象由單一
xml 布局聲明
java 代碼中使用
7. 插入可繪制對(duì)象在 XML 文件中定義的以指定距離插入其他可繪制對(duì)象的可繪制對(duì)象。當(dāng)視圖需要小于視圖實(shí)際邊界的背景時(shí),此類可繪制對(duì)象很有用。
8. 剪裁可繪制對(duì)象 ClipDrawable
在 XML 文件中定義的對(duì)其他可繪制對(duì)象進(jìn)行裁剪(根據(jù)其當(dāng)前級(jí)別)的可繪制對(duì)象。您可以根據(jù)級(jí)別以及用于控制其在整個(gè)容器中位置的重力,來控制子可繪制對(duì)象的裁剪寬度和高度。通常用于實(shí)現(xiàn)進(jìn)度欄之類的項(xiàng)目。
xml 初始化剪裁樣式
java 代碼中使用
9. 縮放可繪制對(duì)象 ScaleDrawable在 XML 文件中定義的更改其他可繪制對(duì)象大小
10. 形狀可繪制對(duì)象 ShapeDrawable
在 XML 中定義的一般形狀。
繪制直線
"
2.繪制圓角矩形
12. Drawable與 Bitmap 常用方法總結(jié)
由于涉及內(nèi)容比較多,已經(jīng)另起文章講述。
Drawable與 Bitmap 常用方法總結(jié)
至此,本篇已結(jié)束,如有不對(duì)的地方,歡迎您的建議與指正。同時(shí)期待您的關(guān)注,感謝您的閱讀,謝謝!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/75827.html
極力推薦文章:歡迎收藏Android 干貨分享 showImg(https://segmentfault.com/img/remote/1460000019975020); 閱讀五分鐘,每日十點(diǎn),和您一起終身學(xué)習(xí),這里是程序員Android 本篇文章主要介紹 Android 開發(fā)中的部分知識(shí)點(diǎn),通過閱讀本篇文章,您將收獲以下內(nèi)容: 一、ImageView 的繼承關(guān)系二、ImageView 常用方...
摘要:簡介繼承關(guān)系如下主要使用方法主要通過使用自定義來適配數(shù)據(jù),進(jìn)而顯示到中。如果不是太明白,可以查看上篇文章使用詳解至此,本篇已結(jié)束,如有不對(duì)的地方,歡迎您的建議與指正。同時(shí)期待您的關(guān)注,感謝您的閱讀,謝謝 極力推薦文章:歡迎收藏Android 干貨分享 showImg(https://segmentfault.com/img/remote/1460000019975020); 閱讀五分...
showImg(https://segmentfault.com/img/remote/1460000019975019?w=157&h=54); 極力推薦文章:歡迎收藏Android 干貨分享 showImg(https://segmentfault.com/img/remote/1460000019975020); 閱讀五分鐘,每日十點(diǎn),和您一起終身學(xué)習(xí),這里是程序員Android 本篇文章...
摘要:進(jìn)行縮放然后比對(duì)進(jìn)行縮放調(diào)用中轉(zhuǎn)換成創(chuàng)建操作圖片用的對(duì)象計(jì)算縮放比例設(shè)置縮放比例建立新的,其內(nèi)容是對(duì)原的縮放后的圖至此,本篇已結(jié)束,如有不對(duì)的地方,歡迎您的建議與指正。同時(shí)期待您的關(guān)注,感謝您的閱讀,謝謝 showImg(https://segmentfault.com/img/remote/1460000019975019?w=157&h=54); 極力推薦文章:歡迎收藏Androi...
閱讀 2665·2021-09-09 09:33
閱讀 2820·2019-08-30 15:54
閱讀 2878·2019-08-30 14:21
閱讀 2365·2019-08-29 17:15
閱讀 3589·2019-08-29 16:13
閱讀 2769·2019-08-29 14:21
閱讀 3434·2019-08-26 13:25
閱讀 2036·2019-08-26 12:14