2014-01-17 27 views
0

現在,我已經在我的對話框按鈕功能正常,其中:如何使一個按鈕的外觀單擊時「視覺按住」 /壓

protected Dialog onCreateDialog(...) { 
    ... 
    final Button storeButton = (Button) dialog.findViewById(R.id.btn_store); 
    storeButton.setOnClickListener(new Button.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent = new Intent(MyClass.this, StoreListViewActivity.class); 
       startActivity(intent); 
      } 
    }); 
} 

我該如何獲得按鈕看上去按下(即在視覺上被按下)時,點擊/長按?我沒有這個類的XML文件,因爲我試圖避免修改它。我試圖通過視圖的方法,但我找不到任何。謝謝!

回答

1

如果你想簡單地改變鍵的色調,以顯示它被按下(這也適用於長按):

實施OnTouchListener和重寫此方法:

@Override 
public boolean onTouch(View v, MotionEvent event) { 
    switch (v.getId()) { 
    case R.id.btn_play: 
     if (event.getAction() == MotionEvent.ACTION_DOWN) 
      btnPlay.setColorFilter(Color.argb(100, 37, 169, 208)); 
     else if(event.getAction() == MotionEvent.ACTION_UP) 
      btnPlay.setColorFilter(Color.argb(0, 0, 228, 253)); 
     break; 
    case R.id.btnBuy: 
     if (event.getAction() == MotionEvent.ACTION_DOWN) 
      btnBuy.setColorFilter(Color.argb(255, 37, 169, 208)); 
     else if(event.getAction() == MotionEvent.ACTION_UP) 
      btnBuy.setColorFilter(Color.argb(0, 0, 228, 253)); 
     break; 
    } 
    return false; 
} 

將數值調整爲所需的顏色。

1

只需更換其背景爲新DrawableonClick方法,或佈局文件,其中你會創建一個「按住」效應。例如:

your_button.setDrawableByLayerId(R.id.imagen_fondo, getResources().getDrawable(new_drawable)); 
相關問題