简体   繁体   中英

How to draw in code this path

First happy new year to all here!

I have a question about drawing background in code. I have a code for simple Android game and all assests is in png format, expect background. I`m not a programmer (but newbie in this and I learn with live examples).

I think this code draw background clouds on the screen:

//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);

This draw some random circles as clouds but I want to change this to draw something like hills or mountains. Here is a picture of current background and what I`m looking for.

http://prntscr.com/5nqa25

Can anyone help me with this? I will be really thankfuly

Responding to the further question in the comment:

you cant really do that with canvas.drawColor , but you can use a proper Paint object and use canvas.drawPaint (or other canvas method that uses Paint object - if you want to for example draw shape with gradient).

The key part of creating your gradient Paint object is calling its setShader(...) method. For example like so:

mGradientPaint = new Paint();
mGradientPaint.setStyle(Paint.Style.FILL);
mGradientPaint.setShader(new LinearGradient(0, 0, 0, getHeight(), Color.TRANSPARENT, Color.GREEN, Shader.TileMode.MIRROR));

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM