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