packagecom.k.gameview;importandroid.content.Context;importandroid.graphics.Canvas;importandroid.graphics.Color;importandroid.graphics.Paint;importandroid.graphics.PorterDuff.Mode;importandroid.graphics.PorterDuffXfermode;importandroid.graphics.Rect;importandroid.graphics.RectF;importandroid.graphics.Region;importandroid.view.KeyEvent;importandroid.view.MotionEvent;importandroid.view.View;public class GameView1 extends View implementsRunnable {/*声明Paint对象*/
private Paint mPaint = null;publicGameView1(Context context) {super(context);/*构建对象*/mPaint= newPaint();/*开启线程*/
new Thread(this).start();
}floatarc;public voidonDraw(Canvas canvas) {super.onDraw(canvas);if(arc>360)
arc=0;/*设置画布的颜色*/canvas.drawColor(Color.BLACK);/*设置取消锯齿效果*/mPaint.setAntiAlias(true);
mPaint.setAlpha(255);if(arc>200){
mPaint.setColor(Color.YELLOW);
}else{
mPaint.setColor(Color.GREEN);
}
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeWidth(5);
RectF rf= new RectF(10, 10, 90, 140);
canvas.drawRoundRect(rf,10, 10, mPaint);
mPaint.setXfermode(newPorterDuffXfermode(Mode.SRC_IN));
mPaint.setAlpha(0);
mPaint.setStyle(Paint.Style.FILL);
canvas.drawArc(new RectF(-100, -75, 200, 225), 240, arc, true, mPaint);
arc+=2.5;
}//触笔事件
public booleanonTouchEvent(MotionEvent event) {return true;
}//按键按下事件
public boolean onKeyDown(intkeyCode, KeyEvent event) {return true;
}//按键弹起事件
public boolean onKeyUp(intkeyCode, KeyEvent event) {return false;
}public boolean onKeyMultiple(int keyCode, intrepeatCount, KeyEvent event) {return true;
}public voidrun() {while (!Thread.currentThread().isInterrupted()) {try{
Thread.sleep(100);
}catch(InterruptedException e) {
Thread.currentThread().interrupt();
}//使用postInvalidate可以直接在线程中更新界面
postInvalidate();
}
}
}