将GradientDrawable转换为位图 [英] Convert GradientDrawable to Bitmap

查看:560
本文介绍了将GradientDrawable转换为位图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下渐变(动态生成):

I have the following gradient (generated dynamically):

    GradientDrawable dynamicDrawable = new GradientDrawable();
    dynamicDrawable.setGradientType(GradientDrawable.LINEAR_GRADIENT);
    dynamicDrawable.setUseLevel(false);
    int colors[] = new int[3];
    colors[0] = Color.parseColor("#711234");
    colors[1] = Color.parseColor("#269869");
    colors[2] = Color.parseColor("#269869");
    dynamicDrawable.setColors(colors);

并且我想使用onDraw方法在视图中设置该可绘制对象.

and I want to set that drawable in a view using onDraw method.

当我想将Drawable分配给位图时,我使用强制转换(BitmapDrawable),但是在这种情况下是不可能的,因为gradientDrawable无法强制转换为BitmapDrawable.

When I want to assign a Drawable to a bitmap I use the casting (BitmapDrawable), but in that case is not possible due the gradientDrawable cannot be cast to BitmapDrawable.

关于我该如何解决的任何想法?

Any idea about how I solve that?

预先感谢

推荐答案

  • 使用Bitmap.createBitmap()
  • 创建可变的位图
  • 使用new Canvas(bitmap)
  • 根据位图创建Canvas
  • 然后在您的GradientDrawable
  • 上调用draw(canvas)

    • Create a mutable bitmap using Bitmap.createBitmap()
    • Create a Canvas based on the bitmap using new Canvas(bitmap)
    • Then call draw(canvas) on your GradientDrawable
    • 这篇关于将GradientDrawable转换为位图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆