1. 主要代码
......
private int value = 1; // 用于改变按钮的大小
......
commonButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Button button = (Button) v;
if (value == 1
&& button.getWidth() == getWindowManager().getDefaultDisplay().getWidth()) {
value = -1;
} else if (value == -1 && button.getWidth() < 100) {
value = 1;
}
button.setWidth(button.getWidth() + (int) (button.getWidth() * 0.1) * value);
button.setHeight(button.getHeight() + (int) (button.getWidth() * 0.1) * value);
}
});
imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
/*
* 表示当前触摸屏触摸的时候会回调该方法 MotionEvent表示移动的动作,有触摸笔,手势,滚动球等
* getAction():表示计算按下点与滑动后的点的之间的距离
*/
imageButton.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
v.setBackgroundResource(R.drawable.button1);
} else if (event.getAction() == MotionEvent.ACTION_DOWN) {
v.setBackgroundResource(R.drawable.button2);
}
return false;
}
});
// 表示当前这个控件的焦点发生变化的时候就触发它。
imageButton.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
imageButton.setBackgroundResource(R.drawable.button2);
} else {
imageButton.setBackgroundResource(R.drawable.button1);
}
// TODO Auto-generated method stub
}
});
imageButton.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
/*
* KeyEvent表示按下的动作,getAction()表示获取用户的动作方法 查看android api 文档
* ACTION_UP 于 ACTION_DOWN 表示上下键
*/
// TODO Auto-generated method stub
if (KeyEvent.ACTION_DOWN == event.getAction()) {
v.setBackgroundResource(R.drawable.button3);
} else if (KeyEvent.ACTION_UP == event.getAction()) {
v.setBackgroundResource(R.drawable.button2);
}
return false;
}
});
2. Demo执行结果