Android游戏开发---View线程绘动画与显示总结
用View来进行动态绘图,要解决的一个很重要的问题就是如何重绘屏幕。Android的View类中提供了一个postInvalidate()方法,会自动调用View中onDraw方法来重新绘制屏幕。下面一段代码实现了任意线拖动红线的位置。并能自动自动更新线的位置.
在此会出现两个关于屏幕事件的问题:一、如何让View来捕获按键及触屏事件, 而不是Activity?我们知道,当你点击屏幕的时候,系统是先响应Activity中的onTouchEvent方法(onKeyUp等方法也是)的,而不是响应我们自己设定显示的View。这就会造成我们在View中写的onTouchEvent失效。有2中解决办法:方法1. 使用代理。即在Activity中的onTouchEvent方法中直接调用ThreadUpdateView实例中的onTouchEvent方法。方法2. 使View强行获得焦点。在View的构造方法中设置this.setFocusable(true); 二、如何让触摸事件不传递给Activity?我们知道,在Android中触摸事件是能进行传递的。如View执行完后, 按下事件就传递给Activity。那么如何让他不传递呢?解决方法:将onTouchEvent的返回值写成return true;而不是return super.onTouchEvent(event);