在我们经常应用开发中,经常用到将drawable和string相互转化。注意这情况最好用于小图片入icon等。
- public synchronized Drawable byteToDrawable(String icon) {
-
- byte[] img=Base64.decode(icon.getBytes(), Base64.DEFAULT);
- Bitmap bitmap;
- if (img != null) {
-
-
- bitmap = BitmapFactory.decodeByteArray(img,0, img.length);
- @SuppressWarnings("deprecation")
- Drawable drawable = new BitmapDrawable(bitmap);
-
- return drawable;
- }
- return null;
-
- }
- public synchronized String drawableToByte(Drawable drawable) {
-
- if (drawable != null) {
- 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);
- drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
- drawable.getIntrinsicHeight());
- drawable.draw(canvas);
- int size = bitmap.getWidth() * bitmap.getHeight() * 4;
-
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream(size);
-
- bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
-
- byte[] imagedata = baos.toByteArray();
-
- String icon= Base64.encodeToString(imagedata, Base64.DEFAULT);
- return icon;
- }
- return null;
- }
Android Drawable 和String 相互转化
原文:http://www.cnblogs.com/Free-Thinker/p/5629727.html