android图片类型之间相互转换实现代码

 更新时间:2015年10月16日 12:22:23   作者:一叶飘舟  
这篇文章主要介绍了android图片类型之间相互转换的方法,涉及Android实现各种常用图片类型及字节类型的转换技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了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, 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.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); 
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, 100, baos); 
 return baos.toByteArray(); 
} 

4、 byte[] → Bitmap

Java代码如下:

private Bitmap Bytes2Bimap(byte[] b){ 
  if(b.length!=0){ 
  return BitmapFactory.decodeByteArray(b, 0, b.length); 
  } 
  else { 
  return null; 
  } 
} 
private Bitmap Bytes2Bimap(byte[] b){ 
  if(b.length!=0){ 
  return BitmapFactory.decodeByteArray(b, 0, b.length); 
  } 
  else { 
  return null; 
  } 
}

以上是我在实践中遇到的一些转换,以后遇到类似的就不用到处找了。

希望本文所述对大家的Android程序设计有所帮助。

相关文章

  • Android自定义gridView仿头条频道拖动管理功能

    Android自定义gridView仿头条频道拖动管理功能

    这篇文章主要介绍了Android自定义gridView仿头条频道拖动管理功能,本文通过实例代码效果图展示给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • Android checkbox的listView具体操作方法

    Android checkbox的listView具体操作方法

    这篇文章主要介绍了Android checkbox的listView具体操作方法,重点就是存储每个checkbox的状态值,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • Android对EditTex的图片实现监听

    Android对EditTex的图片实现监听

    这篇文章主要为大家详细介绍了Android如何对EditTex的图片实现监听,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • Android 开发线程的分析

    Android 开发线程的分析

    这篇文章主要介绍了Android 开发线程的分析的相关资料,需要的朋友可以参考下
    2017-04-04
  • Android开发之Parcel机制实例分析

    Android开发之Parcel机制实例分析

    这篇文章主要介绍了Android开发之Parcel机制,实例分析了Parcel机制的原理与实现技巧,需要的朋友可以参考下
    2015-05-05
  • Android scrollToTop实现点击回到顶部(兼容PullTorefreshScrollview)

    Android scrollToTop实现点击回到顶部(兼容PullTorefreshScrollview)

    当页面滑动到底部,出现回到顶部的按钮相信对大家来说并不陌生,下面这篇文章主要介绍了关于Android scrollToTop实现点击回到顶部,并兼容PullTorefreshScrollview的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴。
    2017-03-03
  • Android7.0自动更新适配 包解析异常

    Android7.0自动更新适配 包解析异常

    这篇文章主要为大家详细介绍了Android7.0自动更新适配,包解析异常的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Android动画工具类的封装实战记录

    Android动画工具类的封装实战记录

    这篇文章主要给大家介绍了关于一次Android动画工具类的封装实战,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • 一文带你了解Android中的网络请求

    一文带你了解Android中的网络请求

    安卓开发网络请求可谓是安卓开发的灵魂,如果你不会网络请求,那么你开发的应用软件就是一具没有灵魂的枯骨。本文主要为大家介绍的是Android的网络请求,感兴趣的可以跟随小编一起学习一下
    2022-11-11
  • Android自定义View实现随机验证码

    Android自定义View实现随机验证码

    这篇文章主要介绍了Android自定义View实现随机验证码的相关资料,感兴趣的小伙伴们可以参考一下
    2016-07-07

最新评论