View游戏框架:
1.继承View这个类,重写绘图函数void Draw(0;重写按键按下事件onKeyDown();重写按键抬起事件onKeyUp();重写触屏事件函数
2. 绘图函数无论是图形/图片/文本首先都需要一个画布,这个画布作为View里面Draw()的参数传进来,在Draw()中必须还要一个Paint画笔
设置画笔的颜色等;
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
//创建一个画笔
Paint paint = new Paint();
//设置画笔的颜色
paint.setColor(Color.WHITE);
//画布本身绘制一个文本
canvas.drawText("Fuck 小日本", textx, texty, paint);
super.onDraw(canvas);
}
3.设置屏幕全屏的方法: 1) 直接在程序中设置this.requestWindowFeature(Window.FEATURE_NO_TITLE);设置没有标 题;
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 隐去状态的部分 包括电源和一切修饰
2) 同样也可以在Manifest中设置,去除标题android:theme = "@android:style/Theme.NoTitlerBar";
设置全屏(隐去状态栏和应用标题)android:theme ="@android:style/Theme.NoTitleBar.Fullscreen"
4.View设置焦点和"刷屏";焦点的设置主要是告诉程序这个View 要实现交互,方法直接在构造函数中setFocusable(true); "刷屏"可以自认为一种更新画面不断地更新实现动态的效果;View类本身提供invalidate()和postInvalidate()实现画面的不断更新
5. 触屏监听onTouchEvent(MotionEvent event)针对于各种在屏幕上的手势都可以通过这个函数实现监听;event.getAction()就是当前用户手势,MotionEventt指类定义了很多 触屏的事件
// @Override
//这个是完整的触屏侦听
// public boolean onTouchEvent(MotionEvent event) {
// // TODO Auto-generated method stub
// int x = (int) event.getX();
// int y = (int) event.getY();
// if(event.getAction() == MotionEvent.ACTION_DOWN){
// textx = x;
// texty = y;
// }else if(event.getAction() == MotionEvent.ACTION_UP){
// textx = x;
// texty = y;
// }else if(event.getAction() == MotionEvent.ACTION_MOVE){
// textx = x;
// texty = y;
//
// }
// //重新绘制图形
// invalidate();
// return true;
// }
//针对于这个文本可以直接采用这种形式
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
textx = (int) event.getX();
texty = (int) event.getY();
invalidate();
return true;
}