DC45D561A74BE3E2D6B77E31954601  

package com.example.mytouch2;

 

import...

 

public class MainActivity extends Activity {

 

private TextView msg;

 

private StringBuilder data;



//宣告觸控速率追蹤物件之變數

 

private VelocityTracker tracker;

 

private LinearLayout rootlayout;

 

@Override

 

public void onCreate(Bundle savedInstanceState) {

 

super.onCreate(savedInstanceState);

 

setContentView(R.layout.activity_main);

 

data = new StringBuilder();

 

msg = (TextView) findViewById(R.id.msg);

 

msg.setTextSize(26);

 

rootlayout = (LinearLayout) findViewById(R.id.rootlayout);



//註冊觸控監聽物件以及處理

 

rootlayout.setOnTouchListener(new OnTouchListener() {

 

public boolean onTouch(View view, MotionEvent event) {

 

// TODO Auto-generated method stub

 

switch (event.getAction()) {

 

case MotionEvent.ACTION_DOWN:

 

data.delete(0, data.length());

 

msg.setText("");



//取得觸控速率追蹤物件



tracker = VelocityTracker.obtain();

 

break;

 

case MotionEvent.ACTION_MOVE:



// 將觸控相關情境資料加入tracker中



tracker.addMovement(event);

 

break;





case MotionEvent.ACTION_UP:



// 計算目前速率,以每微秒1個圖元為單位



tracker.computeCurrentVelocity(1);



/*



* 判斷X分量與Y分量何者較大(必須取絕對值),



* |x|>|Y|代表為接近水準方向, 其中,X>0為向右;X<0為向左



* |x|>|Y|代表為接近垂直方向, 其中,Y>0為向下;Y<0為向上



*/

 

if (Math.abs(tracker.getXVelocity()) > Math.abs(tracker

 

.getYVelocity())) {



if (tracker.getXVelocity() > 0) {




// 水準,向右

 

msg.setText(String.format("水準(左->右)X:%.4f%nY:%.4f",

 

tracker.getXVelocity(),

 

tracker.getYVelocity()));

 

rootlayout.setBackgroundColor(Color.BLUE);

 

} else {



// 水準向左

 

msg.setText(String.format("水準(右->左)X:%.4f%nY:%.4f",

 

tracker.getXVelocity(),

 

tracker.getYVelocity()));

 

rootlayout.setBackgroundColor(Color.YELLOW);

 

}

 

} else {



if (tracker.getYVelocity() > 0) {



// 垂直向下

 

msg.setText(String.format("垂直(上->下)X:%.4f%nY:%.4f",

 

tracker.getXVelocity(),

 

tracker.getYVelocity()));

 

rootlayout.setBackgroundColor(Color.RED);

 

} else {



// 垂直向上

 

msg.setText(String.format("垂直(上->下)X:%.4f%nY:%.4f",

 

tracker.getXVelocity(),

 

tracker.getYVelocity()));

 

rootlayout.setBackgroundColor(Color.GREEN);

 

}

 

}

 

break;

 

}

 

return true;

 

}

 

});

 

}

 

}
創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()