Java 在屏幕上随机生成一个圆圈,使其变为绿色或红色

Java 在屏幕上随机生成一个圆圈,使其变为绿色或红色,java,android,canvas,android-canvas,Java,Android,Canvas,Android Canvas,因此,我一直在尝试制作一款游戏应用程序,它可以在android屏幕上随机显示带有文本的红色按钮或带有文本的绿色按钮。如果有人能帮我,我将不胜感激。另一方面,如果有人知道如何做到这一点,我想慢慢地产生更快的冷却上升。谢谢 @SuppressLint("DrawAllocation") @Override protected void onDraw(Canvas canvas){ String str = "Joke of the day"; super.onDraw(canvas

因此,我一直在尝试制作一款游戏应用程序,它可以在android屏幕上随机显示带有文本的红色按钮或带有文本的绿色按钮。如果有人能帮我,我将不胜感激。另一方面,如果有人知道如何做到这一点,我想慢慢地产生更快的冷却上升。谢谢

@SuppressLint("DrawAllocation")
@Override
protected void onDraw(Canvas canvas){

    String str = "Joke of the day";
    super.onDraw(canvas);
    paint = new Paint();
    Random random = new Random();
    Random randomTwo = new Random();

    //Rect ourRect = new Rect();
    Rect topRect = new Rect();
    Rect backGround = new Rect();

    paint.setColor(Color.BLACK);
    backGround.set(0,0,canvas.getWidth(),canvas.getHeight());
    canvas.drawRect(backGround, paint);
    for(int i = 0; i <= 900; i++;){

    }

    if(blank == time){
        paint.setColor(Color.RED);
        canvas.drawCircle(random, randomTwo, 230, paint);
    }else {
        paint.setColor(Color.GREEN);
        canvas.drawCircle(random, randomTwo, 230, paint);
    }
}
@SuppressLint(“DrawAllocation”)
@凌驾
受保护的void onDraw(画布){
String str=“当天的笑话”;
super.onDraw(帆布);
油漆=新油漆();
随机=新随机();
Random Random two=新的Random();
//Rect ourRect=新Rect();
Rect topRect=新的Rect();
Rect backGround=new Rect();
油漆。设置颜色(颜色。黑色);
set(0,0,canvas.getWidth(),canvas.getHeight());
画布.drawRect(背景、绘画);

对于(inti=0;i您只需要一个
Random
实例

在onDraw外部声明
private long lastUpdate=0;
private int lastColor=Color.BLACK;

将底部部分更新为:

final float radius = 230f;
if(System.currentTimeMillis() > lastUpdated + 1000){
    lastColor = random.nextInt(2) == 1 ? Color.RED : Color.GREEN;
    lastUpdated = System.currentTimeMillis();
}
paint.setColor(lastColor);
canvas.drawCircle(random.nextInt(canvas.getWidth()-radius/2) + radius/2f, random.nextInt(canvas.getHeight()-radius/2) + radius/2f, radius, paint);
这将每秒在随机位置绘制一个红色或绿色的圆圈

您需要半径/2,因为坐标是从圆心开始的

至于你问题的第二部分,还有一个补充,我想慢慢产生更快的好消息。你必须澄清你的意思

编辑: 此处提供了更完整(正确)的示例:

我还没有初始化变量blank和time。我不知道我需要在那里比较什么,甚至不知道如何设置时间。你想连续显示随机圆圈,还是只在事件发生时显示?我想它也随机生成圆圈的颜色,以便进入blank。你需要进一步澄清,或举例说明。例如例如,屏幕上每秒钟会有2个不同颜色的圆圈?或者在用户操作后它们会改变吗?哦,是的,我只想每秒1个或1000纳米