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