Drawable和Bitmap轉換
一、Bitmap轉Drawable
Bitmap bm=xxx; //xxx根據你的情況獲取
BitmapDrawable bd=new BitmapDrawable(bm);
因為BtimapDrawable是Drawable的子類,最終直接使用bd物件即可。
二、 Drawable轉Bitmap
轉成Bitmap物件後,可以將Drawable物件通過Android的SK庫存成一個位元組輸出流,最終還可以儲存成為jpg和png的檔案。
Drawable d=xxx; //xxx根據自己的情況獲取drawable
BitmapDrawable bd = (BitmapDrawable) d;
Bitmap bm = bd.getBitmap();
最終bm就是我們需要的Bitmap物件了。
// 從資源中獲取Bitmap
public static Bitmap getBitmapFromResources(Activity act, int resId) {
Resources res = act.getResources();
return BitmapFactory.decodeResource(res, resId);
}
// byte[] → Bitmap
public static Bitmap convertBytes2Bimap(byte[] b) {
if (b.length == 0) {
return null;
}
return BitmapFactory.decodeByteArray(b, 0, b.length);
}
// Bitmap → byte[]
public static byte[] convertBitmap2Bytes(Bitmap bm) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
return baos.toByteArray();
}
// 1)Drawable → Bitmap
public static Bitmap convertDrawable2BitmapByCanvas(Drawable drawable) {
Bitmap bitmap = Bitmap
.createBitmap(
drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight(),
drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
: Bitmap.Config.RGB_565);
Canvas canvas = new Canvas(bitmap);
// canvas.setBitmap(bitmap);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight());
drawable.draw(canvas);
return bitmap;
}
// 2)Drawable → Bitmap
public static Bitmap convertDrawable2BitmapSimple(Drawable drawable){
BitmapDrawable bd = (BitmapDrawable) drawable;
return bd.getBitmap();
}
// Bitmap → Drawable
public static Drawable convertBitmap2Drawable(Bitmap bitmap) {
BitmapDrawable bd = new BitmapDrawable(bitmap);
// 因為BtimapDrawable是Drawable的子類,最終直接使用bd物件即可。
return bd;
}
Bitmap bm=xxx; //xxx根據你的情況獲取
BitmapDrawable bd=new BitmapDrawable(bm);
因為BtimapDrawable是Drawable的子類,最終直接使用bd物件即可。
二、 Drawable轉Bitmap
轉成Bitmap物件後,可以將Drawable物件通過Android的SK庫存成一個位元組輸出流,最終還可以儲存成為jpg和png的檔案。
Drawable d=xxx; //xxx根據自己的情況獲取drawable
BitmapDrawable bd = (BitmapDrawable) d;
Bitmap bm = bd.getBitmap();
最終bm就是我們需要的Bitmap物件了。
// 從資源中獲取Bitmap
public static Bitmap getBitmapFromResources(Activity act, int resId) {
Resources res = act.getResources();
return BitmapFactory.decodeResource(res, resId);
}
// byte[] → Bitmap
public static Bitmap convertBytes2Bimap(byte[] b) {
if (b.length == 0) {
return null;
}
return BitmapFactory.decodeByteArray(b, 0, b.length);
}
// Bitmap → byte[]
public static byte[] convertBitmap2Bytes(Bitmap bm) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
return baos.toByteArray();
}
// 1)Drawable → Bitmap
public static Bitmap convertDrawable2BitmapByCanvas(Drawable drawable) {
Bitmap bitmap = Bitmap
.createBitmap(
drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight(),
drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
: Bitmap.Config.RGB_565);
Canvas canvas = new Canvas(bitmap);
// canvas.setBitmap(bitmap);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight());
drawable.draw(canvas);
return bitmap;
}
// 2)Drawable → Bitmap
public static Bitmap convertDrawable2BitmapSimple(Drawable drawable){
BitmapDrawable bd = (BitmapDrawable) drawable;
return bd.getBitmap();
}
// Bitmap → Drawable
public static Drawable convertBitmap2Drawable(Bitmap bitmap) {
BitmapDrawable bd = new BitmapDrawable(bitmap);
// 因為BtimapDrawable是Drawable的子類,最終直接使用bd物件即可。
return bd;
}
相關文章
- Drawable轉換為Bitmap兩種方法
- Android Bitmap 與 Drawable之間的區別和轉換Android
- android byte[]陣列,bitmap,drawable之間的相互轉換Android陣列
- Android: Bitmap/Canvas/DrawableAndroidCanvas
- 將字串轉換成Bitmap型別 或者 將Bitmap轉換成字串字串型別
- 阿里Android開發規範:Bitmap、Drawable 與動畫阿里Android動畫
- c# svg轉Bitmap Bitmap轉ImageSourceC#SVG
- 本地檔案轉 Drawable
- [轉]:bitmap索引和B*tree索引分析索引
- WPF Bitmap轉imagesource
- Android中的Drawable和動畫Android動畫
- Bitmap 之Mutable轉化
- 利用網路請求將網路圖片轉換成Bitmap格式
- js顯式轉換和隱式轉換JS
- [轉載]oracle_Bitmap IndexOracleIndex
- 自定義 Drawable
- 自定義Drawable
- Bitmap的載入和Cache
- Android之drawable和mipmap目錄區別Android
- NSDate和NSString轉換
- RVA和RAW相互轉換
- List和ObservableCollection的轉換
- Activity轉換為View和把圖片轉換為ViewView
- 將網路圖片 轉化成bitmap
- 在狀態列中加入BitMap (轉)
- Android介面-標題和按鈕定製-drawableAndroid
- Oracle和JDE日曆轉換Oracle
- js 字母和ASCII的轉換JSASCII
- javascript字串和陣列轉換JavaScript字串陣列
- oracle和mysql的行列轉換OracleMySql
- Flex ASM的配置和轉換FlexASM
- List 和 陣列 的轉換陣列
- Java資料型別的顯式轉換和隱式轉換Java資料型別
- C++中的向上型別轉換和向下型別轉換C++型別
- Redis的Bitmap、HyperLogLog和GeoRedis
- Android 自定義 DrawableAndroid
- Android – Drawable 詳解Android
- Drawable圖形定製