本文介绍了将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)
根据位图创建 - 然后在您的
GradientDrawable
上调用 - Create a mutable bitmap using
Bitmap.createBitmap()
- Create a
Canvas
based on the bitmap usingnew Canvas(bitmap)
- Then call
draw(canvas)
on yourGradientDrawable
Canvas
draw(canvas)
这篇关于将GradientDrawable转换为位图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!