阅读背景:

自定义控件重绘没有效果

来源:互联网 

============问题描述============


public class MyViewActivity extends ActionBarActivity{

	private static final int REFRESH = 0x000001;

	//声明GameView类对象

	private GameView mGameView = null;

	

	@Override

	protected void onCreate(Bundle savedInstanceState) {

		// TODO Auto-generated method stub

		super.onCreate(savedInstanceState);

		//实例化GameView对象

		mGameView = new GameView(this);

		//设置我们自定义的View

		setContentView(mGameView);

		//开启线程

		new Thread(new GameThread()).start();

	}

	/**

	 * 触笔事件

	 */

	public boolean onTouchEvent(MotionEvent event){

		return true;

	}

	

	/**

	 * 按键按下事件

	 */

	public boolean onKeyDown(int keyCode,KeyEvent event){

		if(keyCode == 4){

			finish();

		}

		return true;

	}

	

	/**

	 * 按键弹起事件

	 */

	public boolean onKeyUp(int keyCode,KeyEvent event){

		switch(keyCode){

			case KeyEvent.KEYCODE_DPAD_UP:

				mGameView.y-= 3;

				break;

			case KeyEvent.KEYCODE_DPAD_DOWN:

				mGameView.y+= 3;

				break;

		}

		return false;

	}

	

	/**

	 * 多点时间

	 */

	public boolean onKeyMultiple(int keyCode,int repeatCount,KeyEvent event){

		return true;

	}

	

	Handler myHandler = new Handler(){

		public void handleMessage(Message msg) {

			switch(msg.what){

				case REFRESH:

					mGameView.invalidate();

					break;

			}

			super.handleMessage(msg);

		}

	};

	/**

	 * 更新线程

	 * @author yinhui

	 *

	 */

	class GameThread implements Runnable{



		@Override

		public void run() {

			// TODO Auto-generated method stub

			while(Thread.currentThread().isInterrupted()){

				Message message = new Message();

				message.what = MyViewActivity.REFRESH;

				//发送消息

				MyViewActivity.this.myHandler.sendMessage(message);

				try {

					Thread.sleep(100);

				} catch (InterruptedException e) {

					// TODO Auto-generated catch block

					Thread.currentThread().interrupt();

				}

			}

		}

		

	}

}public class 



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: