package com.touch.temp; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.MotionEvent; import android.view.View; /** */ public class TouchActivity extends Activity { private static final Canvas Canvas = null; MyView myView; protected void onCreate(android.os.Bundle savedInstanceState) { super.onCreate(savedInstanceState); myView = new MyView(this); setContentView(myView); }; /** * {@inheritDoc} */ public boolean onTouchEvent1(MotionEvent event) { float x = event.getRawX(); float y = event.getRawY(); System.out.println("座標:" + x + "," + y); return super.onTouchEvent(event); } @Override public boolean onTouchEvent(MotionEvent event){ //重寫的onTouchEvent回調方法 switch(event.getAction()){ case MotionEvent.ACTION_DOWN: //按下 if(myView.x-10<(int)event.getX()&&myView.y-10<(int)event.getY()) { myView.x = (int) event.getX()-50; //改變x座標 // myView.y = (int) event.getY()-50; //改變y座標 myView.postInvalidate(); //重繪 } break; case MotionEvent.ACTION_MOVE: //移動 if(myView.x-10<(int)event.getX()&&myView.y-10<(int)event.getY()) { myView.x = (int) event.getX()-25; //改變x座標 // myView.y = (int) event.getY()-50; //改變y座標 myView.postInvalidate(); //重繪 } break; case MotionEvent.ACTION_UP: //擡起 if(myView.x<400) { myView.x = 0; //改變x座標 myView.y = 0; //改變y座標 myView.postInvalidate(); //重繪 setContentView(myView); // myView.onDraw(canvas); } break; } return super.onTouchEvent(event); } class MyView extends View{ //自定義的 View Paint paint; //畫筆 int x = 0; //x座標 int y = 0; //y座標 42 int w = 50; public MyView(Context context) { //構造器 super(context); paint = new Paint(); //初始化畫筆 } @Override protected void onDraw(Canvas canvas) { //繪製方法 canvas.drawColor(Color.GRAY); //繪製背景色 canvas.drawRect(0, y, x+w, y+800, paint); //繪製矩形 super.onDraw(canvas); } } } //用到了畫布繪圖 簡單的獲取焦點位置