在我们经常应用开发中,经常用到将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. 一些嵌入式和FPGA相关模块的开源

    工作一年,整理下手头做过的东西,分享出来,希望能帮到大家. 嵌入式方面,主要集中在Xilinx家的器件上,ZYNQ居多.Linux相关的就不贴了,网上的资料太多,xilinx-wiki上资料都是比较全 ...

  2. iOS - 发送邮件

    IOS系统框架提供的两种发送Email的方法:openURL 和 MFMailComposeViewController.借助这两个方法,我们可以轻松的在应用里加入如用户反馈这类需要发送邮件的功能. ...

  3. delphi xe5 android sample

    安装xe5以后demo存放的路径在  C:\users\Public\Documents\RAD Studio\12.0\Samples 另外易博龙在sourceforget上也有 svn地址为:sv ...

  4. Java中double类型的数据精确到小数点后两位

    Java中double类型的数据精确到小数点后两位 多余位四舍五入,四种方法 一: double f = 111231.5585;BigDecimal b = new BigDecimal(f); d ...

  5. JVM 学习笔记(一)

    JVM  ----Java  Virtual Machine   (熟称:JAVA虚拟机),JVM 在执行JAVA程序的过程中将内容划分为若干个区域,其有各自的用途和管理机制.如下图: 1.  程序计 ...

  6. SQL操作(增删改查)

    1.一些重要的SQL命令: SELECT - 从数据库中提取数据UPDATE - 更新数据库中的数据DELETE - 从数据库中删除数据INSERT INTO - 向数据库中插入新数据CREATE D ...

  7. 算法练习之:Biorhythms

    Biorhythms Time Limit: 1000MS Memory Limit: 10000KB  Problem Description Some people believe that th ...

  8. ANDROID_MARS学习笔记_S05_003_传感器采样率及属性

    1. 2. import android.app.Activity; import android.content.Context; import android.hardware.Sensor; i ...

  9. 【简译】Windows 线程基础

    翻译一篇关于windows线程的文章,原文在此.第一次翻译,如有错误请多指教 =========================================华丽的分割线============== ...

  10. Super Phyllis(穷举+搜索)

    http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2723 题意:给出一些字符串u,v,代表u-&g ...