android 动画学习系列(一)
16lz
2021-01-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 AsyncTask 为 多任务 多线程 解决方案
- android 延时 不用另起线程或timertask
- Google Android官方文档进程与线程(Processes and Threads)翻译
- Android-Jni线程(一)— 创建线程
- Android 线程池相关知识
- Android 平台上玩DOS游戏