Drawable2Bitmap 的转换方式

作者: super小立立 | 来源:发表于2018-01-15 22:48 被阅读0次

参考文件

方式1: 判断drawable 是否为BitmapDrawable

  • 直接强转 Drawable 为 BitmapDrawable, 然后调用getBitmap() 函数返回Bitmap

方式2: 使用Canvas 绘制Bitmap

  1. 创建Bitmap画布对象
  2. 判断是否为ColorDrawable , 是的话, width = height =2 ?
  3. 不是直接按照 drawable 的宽高, 和 ARGB_8888 创建一个 Bitmap
  4. 调用 drawable.draw(canvas) 函数绘制图像, 并将drawable 保存在 Bitmap 上

private Bitmap getBitmapFromDrawable(Drawable drawable) {
  if (drawable == null) {
    return null;
  }

  if (drawable instanceof BitmapDrawable) {
    return ((BitmapDrawable) drawable).getBitmap();
  }

  try {
    Bitmap bitmap;

    //颜色Drawable
    if (drawable instanceof ColorDrawable) {
      //宽为2, 高为2 ??
      bitmap = Bitmap.createBitmap(COLORDRAWABLE_DIMENSION, COLORDRAWABLE_DIMENSION, BITMAP_CONFIG);
    } else {
      bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), BITMAP_CONFIG);
    }

    Canvas canvas = new Canvas(bitmap);
    drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
    //将 drawable 的内容绘制到 bitmap的canvas 上面去.
    drawable.draw(canvas);
    return bitmap;
  } catch (Exception e) {
    e.printStackTrace();
    return null;
  }
}

相关文章

  • Drawable2Bitmap 的转换方式

    参考文件 方式1: 判断drawable 是否为BitmapDrawable直接强转 Drawable 为 Bit...

  • ObjectMapper默认Number转换为Double解决方

    ObjectMapper默认Number转换为Double解决方式: 设置ObjectMapper的默认转换方式 ...

  • 转换方式

    有句话是这么说的:“贫穷不是件可耻的事,可怕的是拿这个作为逃避任何事情并且还振振有词的借口。”

  • python实现将阿拉伯数字转换成中文

    第一种转换方式: 第二种转换方式:

  • 十一、类型转换

    1、强制类型转换 C方式的强制类型转换 C方式强制类型转换存在的问题 过于粗暴:任意类型之间都可以进行转换,编译器...

  • (转)Json对象与Json字符串互转

    Json jQuery的转换方式 浏览器支持的转换方式(Firefox,chrome,opera,safari,i...

  • swift中 类型转换

    在使用类型转换时,需要使用as?或者as!方式。as?是一种比较安全的转换方式,其会将类型转换后的结果映射为Opt...

  • C语言类型转换

    类型转换的方式 自动类型转换1.运算转换(规则:会把小类型转换为大类型) 2.赋值转换 强制类型转换格式:(类型)...

  • 4_类型转换

    关键词:类型之间的转换、强制类型转换、隐式类型转换 1. 类型之间的转换 C语言中的数据类型可以进行转换,转换方式...

  • 数据类型转换1

    数据转换两种方式,隐式转换和显式转换。 字符串拼接 数学运算(+ - * /...) ==比较 显示转换 对象转换...

网友评论

    本文标题:Drawable2Bitmap 的转换方式

    本文链接:https://www.haomeiwen.com/subject/mdljoxtx.html