Android Bitmap和Canvas學習筆記
位圖是我們開發中最常用的資源,畢竟一個漂亮的界面對用戶是最有吸引力的。
1. 從資源中獲取位圖
可以使用BitmapDrawable或者BitmapFactory來獲取資源中的位圖。
當然,首先需要獲取資源: 使用BitmapDrawable獲取位圖
1. 使用BitmapDrawable (InputStream is)構造一個BitmapDrawable;
2. 使用BitmapDrawable類的getBitmap()獲取得到位圖; 或者採用下面的方式: 使用BitmapFactory獲取位圖
(Creates Bitmap objects from various sources, including files, streams, and byte-arrays.)
使用BitmapFactory類decodeStream(InputStream is)解碼位圖資源,獲取位圖。 BitmapFactory的所有函數都是static,這個輔助類可以通過資源ID、路徑、文件、數據流等方式來獲取位圖。
以上方法在編程的時候可以自由選擇,在Android SDK中說明可以支持的圖片格式如下:png (preferred), jpg (acceptable), gif (discouraged),和bmp(Android SDK Support Media Format)。
2. 獲取位圖的信息
要獲取位圖信息,比如位圖大小、像素、density、透明度、顏色格式等,獲取得到Bitmap就迎刃而解了,這些信息在Bitmap的手冊中,這裏只是輔助說明以下2點:
* 在Bitmap中對RGB顏色格式使用Bitmap.Config定義,僅包括ALPHA_8、ARGB_4444、ARGB_8888、RGB_565,缺少了一些其他的,比如說RGB_555,在開發中可能需要注意這個小問題;
* Bitmap還提供了compress()接口來壓縮圖片,不過AndroidSAK只支持PNG、JPG格式的壓縮;其他格式的需要Android開發人員自己補充了。
3. 顯示位圖
顯示位圖可以使用核心類Canvas,通過Canvas類的drawBirmap()顯示位圖,或者藉助於BitmapDrawable來將Bitmap繪製到Canvas。當然,也可以通過BitmapDrawable將位圖顯示到View中。
轉換爲BitmapDrawable對象顯示位圖 使用Canvas類顯示位圖
這兒採用一個繼承自View的子類Panel,在子類的OnDraw中顯示
1. 從資源中獲取位圖
可以使用BitmapDrawable或者BitmapFactory來獲取資源中的位圖。
當然,首先需要獲取資源: 使用BitmapDrawable獲取位圖
1. 使用BitmapDrawable (InputStream is)構造一個BitmapDrawable;
2. 使用BitmapDrawable類的getBitmap()獲取得到位圖; 或者採用下面的方式: 使用BitmapFactory獲取位圖
(Creates Bitmap objects from various sources, including files, streams, and byte-arrays.)
使用BitmapFactory類decodeStream(InputStream is)解碼位圖資源,獲取位圖。 BitmapFactory的所有函數都是static,這個輔助類可以通過資源ID、路徑、文件、數據流等方式來獲取位圖。
以上方法在編程的時候可以自由選擇,在Android SDK中說明可以支持的圖片格式如下:png (preferred), jpg (acceptable), gif (discouraged),和bmp(Android SDK Support Media Format)。
2. 獲取位圖的信息
要獲取位圖信息,比如位圖大小、像素、density、透明度、顏色格式等,獲取得到Bitmap就迎刃而解了,這些信息在Bitmap的手冊中,這裏只是輔助說明以下2點:
* 在Bitmap中對RGB顏色格式使用Bitmap.Config定義,僅包括ALPHA_8、ARGB_4444、ARGB_8888、RGB_565,缺少了一些其他的,比如說RGB_555,在開發中可能需要注意這個小問題;
* Bitmap還提供了compress()接口來壓縮圖片,不過AndroidSAK只支持PNG、JPG格式的壓縮;其他格式的需要Android開發人員自己補充了。
3. 顯示位圖
顯示位圖可以使用核心類Canvas,通過Canvas類的drawBirmap()顯示位圖,或者藉助於BitmapDrawable來將Bitmap繪製到Canvas。當然,也可以通過BitmapDrawable將位圖顯示到View中。
轉換爲BitmapDrawable對象顯示位圖 使用Canvas類顯示位圖
這兒採用一個繼承自View的子類Panel,在子類的OnDraw中顯示
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.