本文实例讲述了androID图片类型之间相互转换实现代码。分享给大家供大家参考。具体如下:
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,drawable.getIntrinsicWIDth(),drawable.getIntrinsicHeight()); drawable.draw(canvas); return bitmap; } public static Bitmap drawabletoBitmap(Drawable drawable) { Bitmap bitmap = Bitmap .createBitmap( drawable.getIntrinsicWIDth(),drawable.getIntrinsicHeight()); drawable.draw(canvas); return bitmap; }
2、从资源中获取Bitmap
Java代码如下:
Resources res=getResources(); Bitmap bmp=BitmapFactory.decodeResource(res,R.drawable.pic); 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(); } private byte[] Bitmap2Bytes(Bitmap bm){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); bm.compress(Bitmap.CompressFormat.PNG,baos); return baos.toByteArray(); }
4、 byte[] → Bitmap
Java代码如下:
private Bitmap Bytes2Bimap(byte[] b){ if(b.length!=0){ return BitmapFactory.decodeByteArray(b,b.length); } else { return null; } } private Bitmap Bytes2Bimap(byte[] b){ if(b.length!=0){ return BitmapFactory.decodeByteArray(b,b.length); } else { return null; } }
以上是我在实践中遇到的一些转换,以后遇到类似的就不用到处找了。
希望本文所述对大家的AndroID程序设计有所帮助。
总结以上是内存溢出为你收集整理的android图片类型之间相互转换实现代码全部内容,希望文章能够帮你解决android图片类型之间相互转换实现代码所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)