2
我想濫用標準按鈕作爲切換按鈕,但只有當它的longpressed。因此,我首先將背景圖像替換爲默認樣式,以獲得按下,聚焦和默認狀態。Android按鈕setPressed不會改變動畫
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/btn_pressed" /> <!-- pressed -->
<item android:state_focused="true" android:drawable="@drawable/btn_focused" /> <!-- focused -->
<item android:drawable="@drawable/btn_default" /> <!-- default -->
</selector>
我實現兩者onClickListener和OnLongClickListener如下:
private OnLongClickListener mFireHoldListener = new OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
Log.i(TAG, "Long FIRE");
Button btn = (Button) view;
btn.setPressed(true);
btn.invalidate();
Log.i(TAG, "isPressed: " + btn.isPressed());
return false;
}
};
如果我執行長按,按鍵不其背景更改爲state_pressed。我怎樣才能保持按鈕按下?使用切換按鈕不起作用,因爲應該可以進行正常的點擊操作。如果按鈕按下的時間較長,則該按鈕會「鎖定」。
非常感謝
上長按代替btn.setPressed(真),它works.It的正確方法;與btn.setBackgroungResource(R.drawable.btn_pressed); –
非常感謝,它的作品。我不確定它是否是'乾淨'的方式,但它迄今給我帶來了期望的結果。 – Alx