在Android實現多個按鍵同時按壓
前言
由於繪圖引擎跨到Android時是全螢幕狀態,加上考慮接合Android的事件如Click、Touch...等,這時多了個麻煩,要如何輸入Debug的命令?在PC不論是Window或Linux都有Console視窗,但Android卻沒有,所以目前想到的是在螢幕的左上與右下新增隱形的按鈕,當同時壓下時會出現UI可以輸入命令。這次只記錄同時按壓的部分,在此做個紀錄。內容
先在Android studio裡開一個"Empty activity"的專案,開完後到Layout裡新增2個TextView,如下圖![]() |
| 在Layout新增按鍵 |
調整為Layout後,接著就來偵測同按壓時,範例如下
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.util.Log;
import java.util.Date;
public class MainActivity extends AppCompatActivity {
private long time1=0;
private long time2=0;
private void CheckMultiClick(){
long delTime=time1-time2;
if(delTime < 0)
delTime*=-1;
//
if(delTime<1000){
Log.i("MultiClick","Double click!");
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv1=(TextView)findViewById(R.id.textView1);
TextView tv2=(TextView)findViewById(R.id.textView2);
//
tv1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
time1=(new Date() ).getTime();
CheckMultiClick();
}
});
//
tv2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
time2=(new Date() ).getTime();
CheckMultiClick();
}
});
}
}
範例中,先分別為TextView上OnClick事件,可以看到當Clcik發生時會記錄"time",而這個"time"的意義可以參考Java日期時間(Date/Time),紀錄完後喚起"CheckMultiClick()",裡面很簡單,將兩個"time"的差做檢查是否小於1000,這裡的時間差代表兩個"time"差幾毫秒(milliSecs),所以1000代表差1秒就發生同時按壓。

沒有留言:
張貼留言