android drawable bitmapandroid在处理一写图片资源的时候,会进行一些类型的转换,现在有空整理一下:?1、Dra
android drawable bitmap
android在处理一写图片资源的时候,会进行一些类型的转换,现在有空整理一下:
?
1、Drawable → Bitmap
Java代码??
- public?static?Bitmap?drawableToBitmap(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、从资源中获取Bitmap
?
Java代码??
- Resources?res=getResources();??
- ??
- Bitmap?bmp=BitmapFactory.decodeResource(res,?R.drawable.pic);??
?
3、Bitmap → byte[]
?
Java代码??
- private?byte[]?Bitmap2Bytes(Bitmap?bm){??
- ????ByteArrayOutputStream?baos?=?new?ByteArrayOutputStream();????
- ????bm.compress(Bitmap.CompressFormat.PNG,?100,?baos);????
- ????return?baos.toByteArray();??
- ???}??
?
4、 byte[] → Bitmap

- private?Bitmap?Bytes2Bimap(byte[]?b){??
- ????????????if(b.length!=0){??
- ????????????????return?BitmapFactory.decodeByteArray(b,?0,?b.length);??
- ????????????}??
- ????????????else?{??
- ????????????????return?null;??
- ????????????}??
- ??????}??
?
?
?
以上是我在实践中遇到的一些转换,以后遇到类似的就不用到处找了,希望对大家也有一点用处!
