将GradientDrawable转换为位图

将GradientDrawable转换为位图

本文介绍了将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转换为位图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-31 15:35