所以我一直在尝试制作一款游戏应用,可以在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);
}
}
答案 0 :(得分:1)
您只需要一个Random
个实例。
在onDraw之外声明private long lastUpdated = 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,因为坐标来自圆心。
至于你问题的第二部分,还在旁注上我希望慢慢产生更快的冷静。你必须澄清你的意思。
编辑: 在这里提供了更完整(和正确)的样本: https://gist.github.com/mshi/8287fd3956c9a917440d