控件點擊事件效果實現

實現控件中點擊時控件的按鈕顏色的變化,有如下幾個方法

1、實現Xml佈局的引用

    引用xml實現按鈕控件顏色的變化

 2、java代碼中實現

      很多時候,按鈕顏色的變化是可配的,那麼引用xml佈局是不可行的,只能在Java代碼中動態的賦值

     2.1 OnTouch事件

public static boolean OnTouchChangeBG(View v, MotionEvent event) {
		switch (event.getAction()) {
		case MotionEvent.ACTION_DOWN:
			GradientDrawable pressgrad = new GradientDrawable(
					Orientation.TOP_BOTTOM, new int[] {
							Color.parseColor("#F8B62A"),
							Color.parseColor("#FFFFFF") });
			pressgrad.setCornerRadii(new float[] { 10f, 10f, 10f, 10f, 10f,
					10f, 10f, 10f });
			normalDrawable = (Drawable) v.getBackground();
			v.setBackgroundDrawable(pressgrad);
			break;
		case MotionEvent.ACTION_UP:
			v.setBackgroundDrawable(normalDrawable);
			break;
		case MotionEvent.ACTION_CANCEL:
			v.setBackgroundDrawable(normalDrawable);
			break;
		}
		return false;

	}


     2.2  點擊事件

StateListDrawable statelistDrawable = new StateListDrawable();
			int pressed = android.R.attr.state_pressed;
			int windowfocused = android.R.attr.state_window_focused;
			statelistDrawable.addState(new int[] { pressed, windowfocused }, onBasket);
			statelistDrawable.addState(new int[] { -pressed, windowfocused }, offBasket);
			statelistDrawable.addState(new int[] {}, offBasket);
			promoImageView.setImageDrawable(statelistDrawable);



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章