開發 android app時,有時候需要讓按壓按鈕的時候,按鈕有不同的反應,所以不只是按了這個按鈕後的行為,也需要按壓當下的行為,以下紀錄如何去判斷一個按鈕被按壓的情況。

我使用的 OS: Windows 10

Android 版本如下圖:

1.jpg

 

程式碼很簡易,先把關鍵的部分呈現如下:

btn.setOnTouchListener(new View.OnTouchListener(){
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if(event.getAction() == MotionEvent.ACTION_DOWN) {
            btn.setImageDrawable(ContextCompat.getDrawable(MainActivity.this, R.drawable.qr_clear_btn_press));
            textView.setText("按壓");
        } else if (event.getAction() == MotionEvent.ACTION_UP) {
            btn.setImageDrawable(ContextCompat.getDrawable(MainActivity.this, R.drawable.qr_clear_btn));
            textView.setText("放開");
        }

        return true;
    }
});

上述的程式碼主要的部份就是在主畫面設計一個 textview 與  一個 button,然後 button 按壓後 textview 會依據行為有不同的文字呈現。

因為我還有做 button 的圖片改變,就是 setImageDrawable,看官這部分可以直接忽略。

 

打完收工。

Reference:

https://stackoverflow.com/questions/11963763/how-to-detect-when-button-pressed-and-released-on-android

arrow
arrow

    葛瑞斯肯 發表在 痞客邦 留言(0) 人氣()