Android Drawable 和String 相互转化

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

[java] view plain copy

  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. }
时间: 2024-10-14 16:57:31

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

Android Drawable Mipmap Vector使用及Vector兼容

原文地址:http://blog.csdn.net/eclipsexys/article/details/51838119 http://blog.csdn.net/qq_15545283/article/details/51472458 一.谷歌在app中图标的适配的历史 在安卓的发展历程中,由于设备碎片化的原故,谷歌在app中图标的适配上做出一步又一步的改进,大体有这么几个阶段: 首先有了drawable-(m|h|xh|xxh|xxxh)dpi 自android studio后,又有了mi

Android drawable 玩转自定义图片以及bug的解决

很久没有空更新博客了,以至于挺多东西都用过之后就忘记了,没有很好的记录下来,之前在工作的时候也是这样,用完就忘记,所以觉得还是很有必要把自己用过的一些东西,解决的一些问题记录下来的,所以以后尽量坚持一周写一次博客,记录一下自己解决的问题,也与大学共享一下,建议大家也写一下博客或笔记什么的,因为在工作中,自己接触的东西并不可能只是自己刚开始的东西,比如说Android,其实在开发一个app或平时在公司工作的时候,还需要用到很多的东西,而且还有可能有一段时间去使用别的语言去开发,如果自己不记录一下,

Android drawable微技巧,你所不知道的drawable的那些细节

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/50727753 好像有挺久时间没更新博客了,最近我为了准备下一个系列的博客,也是花了很长的时间研读源码.很遗憾的是,下一个系列的博客我可能还要再过一段时间才能写出来,那么为了不至于让大家等太久,今天就给大家更新一篇单篇的文章,讲一讲Android drawable方面的微技巧. 话说微技巧这个词也是我自己发明的,因为drawable这个东西相信大家天天都在使用,每个人都再熟悉不过了

Android Drawable 关于selector中state_pressed="true"的位置顺序

界面中有一个按钮使用这样的样式: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape> <corners android:radius="10dp"/> <solid a

Android Drawable的9种子类 介绍

原文: Android Drawable的9种子类 介绍 Drawable 在android里面 就是代表着图像,注意是图像 而不是图片. 图片是图像的子集.图像除了可以包含图片以外 还可以包含颜色. 换句话说Drawble就是canvas 可以绘制的 一种概念. android 系统自带了很多种drawable.我们最好对自带的drawable 有一种比较熟悉的了解, 这样对我们apk开发很有好处,因为drawable使用 非常简单 基本上就是xml编写 即可.比你自己自定义view的成本要低

Android drawable selector 设置无效

今天写代码时,需要设置一个TextView 的点击效果,press 状态和normal 状态两个icon,同时,点击区域背景在press状态下也不同.实现时将TextView 放在RelativeLayout 中 ,RelativeLayout 作点击区域,设置点击的背景效果,TextView 在点击时显示不同的icon图片. 布局文件如下 <RelativeLayout android:id="@+id/dele_layout" android:layout_width=&qu

CString 与 std::string 相互转化

MFC中CString 与 std::string 相互转化 CString实际是CStringT, 也就是模板类, 在UNICODE环境下,实际是CStringW, 在多字符集环境下,实际是CStringA std::string就是多字符集的. UNICODE环境下 CStringW-->std::string CString实际是CStringW,要转换成多字符集,需进行转码.使用WideCharToMultiByte 转换成多字符集,然后再构造std::string std::strin

CString、char、int、string相互转化

相比于C#,C++的类型转换更为麻烦.下面列举几种主要的类型转换,当然转换的方法有很多,以下可能是最简单.有效的方式了,以后在工作和学习中再逐渐添加其他的类型转换. CString转char* CString file=GetFilePath()+"parameter.txt";    char* pszFileName=(LPSTR)(LPCTSTR)file; string转CString string str; CString ss = str.c_str(); int转CStr

Android Drawable文件夹对应像素密度

Android是自适应屏幕大小及密度的.Android为了保证在不同屏幕下的应用界面效果,提供了以下文件夹来储存图片资源.不同的文件夹对应像素密度不同的图片资源 drawable-ldpi:120dpi左右的屏幕(低密度) drawable-mdpi:160dpi左右的屏幕(中等密度) drawable-tvdpi:213dpi左右的屏幕(中高密度)这个主要在api13中为了优化面向电视的应用程序而引入的. drawable-hdpi:240dpi左右的屏幕(高密度) drawable-xdpi