设置ImageButton按上后的效果
设置ImageButton按下后的效果
ImageButton imgb = (ImageButton) findViewById(R.id.ImageButton01); imgb.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { TextView txt = (TextView) findViewById(R.id.TextView01); txt.setText("图片按钮被单击了"); v.setBackgroundResource(R.drawable.img_10_10); } }); imgb.setOnTouchListener(new Button.OnTouchListener() { //按下时进行图片颜色的过滤处理 public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { v.getBackground().setColorFilter( new ColorMatrixColorFilter(BT_SELECTED)); v.setBackgroundDrawable(v.getBackground()); } else if (event.getAction() == MotionEvent.ACTION_UP) { v.getBackground().setColorFilter( new ColorMatrixColorFilter(BT_NOT_SELECTED)); v.setBackgroundDrawable(v.getBackground()); } return false; } }); } /** * 按下这个按钮进行的颜色过滤 */ public final static float[] BT_SELECTED = new float[] { 2, 0, 0, 0, 2, 0, 2, 0, 0, 2, 0, 0, 2, 0, 2, 0, 0, 0, 1, 0 }; /** * 按钮恢复原状的颜色过滤 */ public final static float[] BT_NOT_SELECTED = new float[] { 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0 };