在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秒就發生同時按壓。
沒有留言:
張貼留言