androidのview游戏框架

来源:互联网 发布:spss mac 破解 编辑:程序博客网 时间:2024/06/04 23:33
androidのview游戏框架
1. view游戏框架介绍,首先需要建立一个Activity。
public class MainActivity extends Activity {    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //隐去标题栏(应用程序的名字)          this.requestWindowFeature(Window.FEATURE_NO_TITLE);        //隐去状态栏部分(电池等图标和一切修饰部分)        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);        //设置显示View实例        setContentView(new MyView(this));    }}
然后自定义一个视图类Myview继承View类。
public class MyView extends View {private int textX = 20, textY = 20;//重写父类构造函数public MyView(Context context) {super(context);setFocusable(true);}//重写父类绘图函数@Overrideprotected void onDraw(Canvas canvas) {//创建一个画笔的实例Paint paint = new Paint();//设置画笔的颜色paint.setColor(Color.WHITE);//绘制文本canvas.drawText("Game", textX, textY, paint);super.onDraw(canvas);}        //重写按键抬起事件函数@Overridepublic boolean onKeyUp(int keyCode, KeyEvent event) {return super.onKeyUp(keyCode, event);}@Overridepublic boolean onTouchEvent(MotionEvent event) {//获取用户手指触屏的X坐标赋值与文本的X坐标textX = (int)event.getX();//获取用户手指触屏的Y坐标赋值与文本的Y坐标textY = (int)event.getY();//重绘画布invalidate();//postInvalidate();return true;}}
加入log后,分析程序启动时候,view 中方法所走的流程。

先走构造方法,然后启动onDraw(). 一般会执行两次onDraw(),跟 onMeature(), onLayout()方法有关。

invalidate() 跟 postInvalidate() 区别:
invilidate() 方法不能在当前线程中循环调用执行,这里所说的线程不是系统的主UI线程,而是子线程,
postInvalidate() 可以子线程中循环调用执行,如果不在当前view创建线程循环重绘画布就没有区别了。


0 0
原创粉丝点击