控件点击事件效果实现

实现控件中点击时控件的按钮颜色的变化,有如下几个方法

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);



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