在我们经常应用开发中,经常用到将drawable和string相互转化。注意这情况最好用于小图片入icon等。

  1. public synchronized Drawable byteToDrawable(String icon) {
  2. byte[] img=Base64.decode(icon.getBytes(), Base64.DEFAULT);
  3. Bitmap bitmap;
  4. if (img != null) {
  5. bitmap = BitmapFactory.decodeByteArray(img,0, img.length);
  6. @SuppressWarnings("deprecation")
  7. Drawable drawable = new BitmapDrawable(bitmap);
  8. return drawable;
  9. }
  10. return null;
  11. }
  12. public  synchronized  String drawableToByte(Drawable drawable) {
  13. if (drawable != null) {
  14. Bitmap bitmap = Bitmap
  15. .createBitmap(
  16. drawable.getIntrinsicWidth(),
  17. drawable.getIntrinsicHeight(),
  18. drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
  19. : Bitmap.Config.RGB_565);
  20. Canvas canvas = new Canvas(bitmap);
  21. drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
  22. drawable.getIntrinsicHeight());
  23. drawable.draw(canvas);
  24. int size = bitmap.getWidth() * bitmap.getHeight() * 4;
  25. // 创建一个字节数组输出流,流的大小为size
  26. ByteArrayOutputStream baos = new ByteArrayOutputStream(size);
  27. // 设置位图的压缩格式,质量为100%,并放入字节数组输出流中
  28. bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
  29. // 将字节数组输出流转化为字节数组byte[]
  30. byte[] imagedata = baos.toByteArray();
  31. String icon= Base64.encodeToString(imagedata, Base64.DEFAULT);
  32. return icon;
  33. }
  34. return null;
  35. }

Android Drawable 和String 相互转化的更多相关文章

  1. 【转】Android Drawable Resource学习(十一)、RotateDrawable

    对另一个drawable资源,基于当前的level,进行旋转的drawable. 文件位置: res/drawable/filename.xml文件名即资源名 编译数据类型: 指向 RotateDra ...

  2. Android Drawable绘图学习笔记(转)

    如何获取 res 中的资源 数据包package:android.content.res 主要类:Resources Android SDK中的简介:Class for accessing an ap ...

  3. Android Drawable Mipmap Vector使用及Vector兼容

    原文地址:http://blog.csdn.net/eclipsexys/article/details/51838119 http://blog.csdn.net/qq_15545283/artic ...

  4. Android Drawable的9种子类 介绍

    原文: Android Drawable的9种子类 介绍   Drawable 在android里面 就是代表着图像,注意是图像 而不是图片. 图片是图像的子集.图像除了可以包含图片以外 还可以包含颜 ...

  5. CString 与 std::string 相互转化

    MFC中CString 与 std::string 相互转化 CString实际是CStringT, 也就是模板类, 在UNICODE环境下,实际是CStringW, 在多字符集环境下,实际是CStr ...

  6. Android Drawable 与 LayerList综合汇总

    先看需求.要求这样的效果 上代码 <?xml version="1.0" encoding="utf-8"? > <layer-list xm ...

  7. 【转】【Android】Android Drawable Shape 组合画田字格

    使用layer-list组合多个Shap <?xml version="1.0" encoding="utf-8"?> <layer-list ...

  8. Android Studio插件:Android Drawable Importer

    Android Drawable Importer 为了在不同分辨率的设备上更好的展示图片的效果,我们往往需要在 res/drawable 中添加不同分辨率的图片.有时我们可能手里只有一份分辨率的图片 ...

  9. 17.Letter Combinations of a Phone Number (char* 和 string 相互转化)

    leetcode 第17题 分析 char*和string相互转化 char*(或者char)转string 可以看看string的构造函数 default (1) string(); copy (2 ...

随机推荐

  1. Array 原型扩展(快速排序,搅乱顺序)

    /// 快速快速排序算法Array.prototype.quickSort = function (left, right) { // left = left || 0; // right = rig ...

  2. Android Camera 预览图像被拉伸变形的解决方法【转】

    问题描述: 预览图像被拉伸变形 问题原因: 由于预览图像大小跟SurfaceView 大小不一致引起 解决方法: 获取系统支持的所有预览尺寸[getSupportedPictureSizes],然后再 ...

  3. WINDOWS下,中文JSON格式读取报错处理:ValueError: No JSON object could be decoded

    File "C:\Python27\lib\json\__init__.py", line 290, in load **kw) File "C:\Python27\li ...

  4. OA学习笔记-003-Hibernate3.6配置

    一.jar包:核心包, 必须包, jpa, c3p0, jdbc antlr-2.7.6.jarc3p0-0.9.1.jarcommons-collections-3.1.jardom4j-1.6.1 ...

  5. Android CoordinatorLayout + AppBarLayout(向上滚动隐藏指定的View)

    在新的Android Support Library里面,新增了CoordinatorLayout, AppBarLayout等. 实现的效果: 向下滚动RecylerView,Tab会被隐藏,向上滚 ...

  6. ASPX在Debug模式下直接link原始CSS而非Bundle后的CSS

    由于对CSS做了bundle, debug的时候修改原始css文件不会直接反映到浏览器中, 效率较低. 于是我想在debug的时候直接link原始CSS. 很简单. <% #if DEBUG % ...

  7. 使用vs自带的wcf配置工具

    服务和行为是并列的 对应到配置文件中  wcf的配置在system.serviceModel中 可以有多个服务 一个服务会有一个主机以及多个终结点 主机包含多个基址 baseAddress 终结点,由 ...

  8. 33个优秀的HTML5应用演示 (转)

    33个优秀的HTML5应用演示 (转) HTML5能做什么?取代Flash?制作动画?开发程序应用?这些都只是HTML5的一小部分功能而已. 大家可能听到很多关于Flash是否会被HTML5取代的讨论 ...

  9. redhat 6.5 使用其它Linux镜像源的yum源

    最近在虚拟机里装了rhel_6.5_x86_64,发现竟然不自带g++,没办法只好 “yum install gcc-c++”,无奈失败,原因是redhat的yum是收费的... 于是打算怒装其它免费 ...

  10. HDU-2547 无剑无我

    无剑无我 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...