android 动画学习系列(一)
16lz
2022-05-23
老师今天开始讲android的游戏,讲到了view和surfaceview
下面是view的演示部分
private Paint paint;//游戏里很少用double,都是用longprivate int x=10,y=10;private Thread th;//线程控制private boolean flag;public boolean isFlag() {return flag;}public void setFlag(boolean flag) {this.flag = flag;}public MyView(Context context) {super(context);paint=new Paint();paint.setColor(Color.BLUE);setFocusable(true);setFocusableInTouchMode(true);flag=true;th=new Thread(this);th.start();}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);canvas.drawText("点我", x, y, paint);}@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode==KeyEvent.KEYCODE_DPAD_DOWN) {System.out.println("down");y++;}//重绘方法invalidate();return super.onKeyDown(keyCode, event);}@Overridepublic boolean onTouchEvent(MotionEvent event) {//必须改为true,否则就会执行一次x=(int) event.getX();y=(int) event.getY();invalidate();return true;}@Overridepublic void run() {while (flag) {System.out.println("run");x++;y++;try {Thread.sleep(50);} catch (InterruptedException e) {e.printStackTrace();}postInvalidate();}}
演示gif动画,暂无
更多相关文章
- Android(安卓)Audio System 之二:AudioFlinger
- Android(安卓)View刷新机制
- Android(安卓)Audio System 之二:AudioFlinger
- Android的消息机制
- Android消息机制
- Android(安卓)AudioFlinger
- Android中Handler Runnable与Thread的区别详解
- Android正确关闭线程
- 比较详细的handle机制