祝大家新年快乐!
我有一个关于在代码中绘制背景的问题。我有一个简单的Android游戏代码,所有的声明都是png格式,期待背景。我不是程序员(但是这个新手,我通过实例来学习)。
我认为此代码在屏幕上绘制背景云:
//draw cloud layer 1
background_shader.setColor(getResources().getColor(R.color.blue_dark));
int radius = DrawBackgroundCloud(canvas, (ScreenHeight() / 2), 7);
canvas.drawRect(0, (float) ((ScreenHeight() / 2.2) + radius * 1.5), ScreenWidth(), ScreenHeight(), background_shader);
//draw cloud layer 2
background_shader.setColor(getResources().getColor(R.color.blue_darkest));
radius = DrawBackgroundCloud(canvas, (int) (ScreenHeight() / 1.5), 4);
canvas.drawRect(0, (float) ((ScreenHeight() / 1.7) + radius * 1.5), ScreenWidth(), ScreenHeight(), background_shader);
这会画一些随机的圆圈作为云,但我想改变它来绘制像丘陵或山脉的东西。这是当前背景图片以及我正在寻找的内容。
任何人都可以帮我吗?我真的非常感谢
答案 0 :(得分:0)
回应评论中的进一步问题:
您无法使用canvas.drawColor
真正做到这一点,但您可以使用正确的Paint
对象并使用canvas.drawPaint
(或使用Paint
对象的其他canvas方法 - 如果您想要例如用渐变绘制形状。)
创建渐变Paint
对象的关键部分是调用其setShader(...)
方法。例如:
mGradientPaint = new Paint();
mGradientPaint.setStyle(Paint.Style.FILL);
mGradientPaint.setShader(new LinearGradient(0, 0, 0, getHeight(), Color.TRANSPARENT, Color.GREEN, Shader.TileMode.MIRROR));