在我们经常应用开发中,经常用到将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. 移动App双周版本迭代实战--转载备用

    对于移动互联网产品来说,迭代的速度就是生命.我创业时做移动App时是一周一版,而现在是2周1版.相比起小公司,大公司迭代时间虽长,却更为不易,因为大公司流程更多,参与人数更多,需求更多,实现这样的快速 ...

  2. Memcached(三)Memcached配置参数初解

    一.基本参数在我们第一次安装Memcached时,一般都是用过这个命令: memcached -m 512 -u root -d -l 127.0.0.1 -p 11211 我们先来解释这几个参数的含 ...

  3. python manage.py shell之后的一些错误:

    1. 在执行python manage.py shell之后的一些错误: wyl@wyl:~/myobject$ python manage.py shell /usr/lib/python2.7/d ...

  4. MDN > Web technology for developers > HTTP

    The Hypertext Transfer Protocol (HTTP) is an application-layer protocol for transmitting hypermedia ...

  5. 【HDU 3949】 XOR (线性基,高斯消元)

    XOR Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  6. 李洪强iOS开发Swift篇—03_字符串和数据类型

    李洪强iOS开发Swift篇—03_字符串和数据类型 一.字符串 字符串是String类型的数据,用双引号""包住文字内容  let website = "http:// ...

  7. ANDROID_MARS学习笔记_S02_014_GSON解析JSON串为对象

    package com.json2; import android.app.Activity; import android.os.Bundle; import android.view.View; ...

  8. maven 下载 源码和javadoc命令

    1:Maven命令下载源码和javadocs 当在IDE中使用Maven时如果想要看引用的jar包中类的源码和javadoc需要通过maven命令下载这些源码,然后再进行引入,通过mvn命令能够容易的 ...

  9. linux gcc 编译时头文件和库文件搜索路径

    一.头文件    gcc 在编译时寻找所需要的头文件 :    ※搜寻会从-I开始    ※然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INC ...

  10. dev中gridview控件 z

    目录:一.客户端常用1.常用API2.聚焦行变更事件3.客户端选择多行4.客户端选择行5. 获取选择的行数目6.单击行时,选中行7.通过checkbox 选择行8.选择所有行9.启动编辑框,Conta ...