• Drawable和Bitmap转换


    一、Bitmap转Drawable
    Bitmap bm=xxx; //xxx依据你的情况获取
    BitmapDrawable bd=new BitmapDrawable(bm);
    由于BtimapDrawable是Drawable的子类,终于直接使用bd对象就可以。


    二、 Drawable转Bitmap
    转成Bitmap对象后,能够将Drawable对象通过Android的SK库存成一个字节输出流,终于还能够保存成为jpg和png的文件。
    Drawable d=xxx; //xxx依据自己的情况获取drawable

    BitmapDrawable bd = (BitmapDrawable) d;

    Bitmap bm = bd.getBitmap();
    终于bm就是我们须要的Bitmap对象了。

    // 从资源中获取Bitmap
    public static Bitmap getBitmapFromResources(Activity act, int resId) {
    Resources res = act.getResources();
    return BitmapFactory.decodeResource(res, resId);
    }
    // byte[] → Bitmap
    public static Bitmap convertBytes2Bimap(byte[] b) {
    if (b.length == 0) {
    return null;
    }
    return BitmapFactory.decodeByteArray(b, 0, b.length);
    }

    // Bitmap → byte[]
    public static byte[] convertBitmap2Bytes(Bitmap bm) {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
    return baos.toByteArray();
    }
    // 1)Drawable → Bitmap
    public static Bitmap convertDrawable2BitmapByCanvas(Drawable drawable) {
    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);
    // canvas.setBitmap(bitmap);
    drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
    drawable.getIntrinsicHeight());
    drawable.draw(canvas);
    return bitmap;
    }
    // 2)Drawable → Bitmap
    public static Bitmap convertDrawable2BitmapSimple(Drawable drawable){
    BitmapDrawable bd = (BitmapDrawable) drawable;
    return bd.getBitmap();
    }
    // Bitmap → Drawable
    public static Drawable convertBitmap2Drawable(Bitmap bitmap) {
    BitmapDrawable bd = new BitmapDrawable(bitmap);
    // 由于BtimapDrawable是Drawable的子类,终于直接使用bd对象就可以。
    return bd;
    }

  • 相关阅读:
    IO流基础
    DB2 存储过程创建、系统表
    dubbo实现原理简单介绍
    Java 标准 I/O 介绍
    mysql由于权限问题看不到用户数据库
    java 字符常量池
    Java NIO:NIO概述
    128 C语言实现文件复制功能(包括文本文件和二进制文件)
    Linux 下各个目录的作用及内容
    Linux文件系统详解
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/6972541.html
Copyright © 2020-2023  润新知