13,100
社区成员
发帖
与我相关
我的任务
分享
protected void paint(Graphics g) {
g.setColor(0xFFFFFF);
g.fillRect(0, 0, getWidth(), getHeight());// 绘制背景
// 绘制5个扇形
g.setColor(0xFFFFFF);
// g.fillArc(arg0, arg1, arg2, arg3, arg4, arg5);
// 用与背景相同的颜色,遮住要闪烁的扇形
if (System.currentTimeMillis()%7==3) {//控制闪烁
g.setColor(0xFFFFFF);
//绘制扇形区
// g.fillArc(arg0, arg1, arg2, arg3, arg4, arg5);
}
}
public class TestCanvas extends Canvas implements Runnable {
private static final int PART_NUM = 5;// 假设这个圆被分成了5部分
private boolean isRunning = true;// 标识线程是否运行
private int times = 0;// 标示重绘的次数。
private int selectedIndex = 0;// 表示选中的是整圆的第几部分
protected void paint(Graphics g) {
g.setColor(0xFFFFFF);
g.fillRect(0, 0, getWidth(), getHeight());// 绘制背景
// 绘制5个扇形
g.setColor(0xFFFFFF);
g.fillArc(arg0, arg1, arg2, arg3, arg4, arg5);
// 用与背景相同的颜色,遮住要闪烁的扇形
if (times % 2 == 0) {
g.setColor(0xFFFFFF);
g.fillArc(arg0, arg1, arg2, arg3, arg4, arg5);
}
}
protected void keyPressed(int keyCode) {
keyCode = getGameAction(keyCode);
switch (keyCode) {
case Canvas.UP:
case Canvas.LEFT:
selectedIndex = --selectedIndex < 0 ? 0 : PART_NUM - 1;
break;
case Canvas.DOWN:
case Canvas.RIGHT:
selectedIndex = ++selectedIndex >= PART_NUM ? 0 : selectedIndex;
break;
}
}
public void run() {
while (isRunning) {
times++;// 重绘次数加1
repaint();// 重绘
try {
Thread.sleep(100L);// 假设100ms重绘一次
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}