我想在用戶按住按鈕時更改imageview的圖像,並在用戶釋放按鈕時將圖像更改回默認值。只要按下按鈕,如何更改圖像...然後在按鈕上顯示默認值undefined android
0
A
回答
0
使用OnFocusChangeListener(view)方法&重寫OnFocusChange()方法。
0
您需要爲此使用XML選擇器。你可以指定任何你想要的狀態。
的文檔是在這裏:http://developer.android.com/reference/android/graphics/drawable/StateListDrawable.html
您將創建一個XML,即參考了每個狀態要應用樣式,那麼你會在你指定繪製到一個視圖引用(一個按鈕例如),而不是特定的drawable。
詳細信息請參考這太問題:Android selector & text color
0
您可以設置一個OnTouchListener
到ImageView
並在OnTouchListener
你可以設置你想在MotionEvent.ACTION_DOWN
顯示圖像和MotionEvent.ACTION_UP
恢復舊的圖像。
+0
歡迎您使用此解決方案! – jaibatrik
0
您可以創建一個自定義按鈕這樣
public class MButton extends Button {
public MButton(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
public MButton(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public MButton(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
// define style
/**
* Send resource ids for normal, selected, pressed in respective order
*
* @param mImageIds
*/
public void setDrawablePressedBg(Integer... mImageIds) {
StateListDrawable bg = new StateListDrawable();
Drawable normal = this.getResources().getDrawable(mImageIds[0]);
Drawable selected = this.getResources().getDrawable(mImageIds[1]);
Drawable pressed = this.getResources().getDrawable(mImageIds[2]);
bg.addState(View.PRESSED_ENABLED_STATE_SET, pressed);
bg.addState(View.ENABLED_FOCUSED_STATE_SET, selected);
bg.addState(View.ENABLED_STATE_SET, normal);
bg.addState(View.FOCUSED_STATE_SET, selected);
bg.addState(View.EMPTY_STATE_SET, normal);
this.setBackgroundDrawable(bg);
}
// define style
public void setBackgroundPressedBg(Integer p1, Integer p2, Integer p3) {
StateListDrawable bg = new StateListDrawable();
Drawable normal = this.getResources().getDrawable(p1);
Drawable selected = this.getResources().getDrawable(p2);
Drawable pressed = this.getResources().getDrawable(p3);
bg.addState(View.PRESSED_ENABLED_STATE_SET, pressed);
bg.addState(View.ENABLED_FOCUSED_STATE_SET, selected);
bg.addState(View.ENABLED_STATE_SET, normal);
bg.addState(View.FOCUSED_STATE_SET, selected);
bg.addState(View.EMPTY_STATE_SET, normal);
this.setBackgroundDrawable(bg);
}
}
而且你可以在你的onCreate方法使用這樣的
this.book_appointment = (MButton) this._view
.findViewById(R.id.btn_book);
this.book_appointment.setBackgroundPressedBg(R.drawable.btnnormal,
R.drawable.btnsel, R.drawable.btnsel);
這將是這樣的在你的XML佈局文件
<com.packageName.custom.MButton
android:id="@+id/btn_book"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tv_time1"
android:layout_marginTop="20dp"
android:background="@drawable/bookapointment" />
-1
相關問題
- 1. 如何將按鈕背景更改爲圖像,然後按下時恢復爲默認按鈕
- 2. 如何更改按鈕圖像時,按下按鈕
- 3. 自定義按鈕initWithImage在自定義圖像後面顯示默認按鈕
- 4. 如何在Android中按下按鈕後將值更改爲Activity?
- 5. 如何顯示默認值jQuery單選按鈕更改事件?
- 6. 如何在Java中按下按鈕後顯示圖像?
- 7. Android-如何在按下按鈕時更改按鈕的文字?
- 8. 按下按鈕後顯示文本android
- 9. 按鈕圖像更改按鈕單擊,然後轉到下一個子視圖
- 10. ASP.NET - 窗體上只有下拉和按鈕的默認按鈕
- 11. 當按下默認鍵時顯示按鈕按下效果
- 12. Python PyQt4更改圖像按下按鈕
- 13. 按下按鈕時更改UIButton圖像
- 14. 如何在按下按鈕後將按鈕恢復爲默認顏色?
- 15. 顯示圖像時,按下按鈕
- 16. Android:按下按鈕後更改圖像並保持不變
- 17. Android:如何在後退按鈕上按下Android默認啓動器?
- 18. ASP.net圖像按鈕,更改按鈕IIMAGE
- 19. Qt:如何更改QWizard默認按鈕
- 20. 按下按鈕時更改按鈕的圖像,使用javascript
- 21. 單擊按鈕上的Android圖像按鈕顯示
- 22. 當按下Asp.net窗體上的任何按鈕時也按下默認按鈕
- 23. Android:圖像按鈕或按鈕突出顯示效果時按
- 24. Windows Phone:如何在按下按鈕時更改按鈕圖像? (WP; C#)
- 25. 更改按鈕上的背景圖像按多個按鈕
- 26. Tkinter.Label在按鈕按下後不顯示
- 27. 如何只顯示按鈕
- 28. Android按鈕在圖像下
- 29. CodenameOne按下按鈕時更改按鈕
- 30. 如何在按下按鈕時在黑莓中顯示圖像?
button.setOnTouchListener(新View.OnTouchListener(){ \t \t \t公共布爾onTouch(視圖V,MotionEvent事件){ \t \t \t \t如果(event.getAction()== MotionEvent.ACTION_DOWN) \t \t \t \t \t imageView1.setImageResource(R.drawable.alarm); \t \t \t \t如果(event.getAction()== MotionEvent.ACTION_UP) \t \t \t \t \t imageView1.setImageResource(R.drawable.charging_1); \t \t \t \t return false; \t \t \t} \t \t}); –