android在处理一写图片资源的时候,会进行一些类型的转换,现在有空整理一下
16lz
2021-01-24
1、Drawable → Bitmap
Java代码- publicstaticBitmapdrawableToBitmap(Drawabledrawable){
- Bitmapbitmap=Bitmap
- .createBitmap(
- drawable.getIntrinsicWidth(),
- drawable.getIntrinsicHeight(),
- drawable.getOpacity()!=PixelFormat.OPAQUE?Bitmap.Config.ARGB_8888
- :Bitmap.Config.RGB_565);
- Canvascanvas=newCanvas(bitmap);
- //canvas.setBitmap(bitmap);
- drawable.setBounds(0,0,drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight());
- drawable.draw(canvas);
- returnbitmap;
- }
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代码- Resourcesres=getResources();
- Bitmapbmp=BitmapFactory.decodeResource(res,R.drawable.pic);
Resources res=getResources();Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic);
3、Bitmap → byte[]
Java代码- privatebyte[]Bitmap2Bytes(Bitmapbm){
- ByteArrayOutputStreambaos=newByteArrayOutputStream();
- bm.compress(Bitmap.CompressFormat.PNG,100,baos);
- returnbaos.toByteArray();
- }
private byte[] Bitmap2Bytes(Bitmap bm){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); bm.compress(Bitmap.CompressFormat.PNG, 100, baos); return baos.toByteArray(); }
4、 byte[] → Bitmap
- privateBitmapBytes2Bimap(byte[]b){
- if(b.length!=0){
- returnBitmapFactory.decodeByteArray(b,0,b.length);
- }
- else{
- returnnull;
- }
- }
private Bitmap Bytes2Bimap(byte[] b){ if(b.length!=0){ return BitmapFactory.decodeByteArray(b, 0, b.length); } else { return null; } }
以上是我在实践中遇到的一些转换,以后遇到类似的就不用到处找了,希望对大家也有一点用处!
更多相关文章
- android NoSuchMethodError getDrawable
- Android(安卓)DynamicLoadApk 开源插件开发项目代码剖析
- android资源配置文件
- Android(安卓)EditText软键盘弹出时防止布局上移和关闭软键盘
- Android——动态广播、静态广播
- 背景图片显示问题 图片显示错误 android开发
- android 中ScrollView的使用
- Android(安卓)获取WIFI MAC地址的方法
- Android核心基础-3.Android(安卓)开发环境搭建