Button 常用事件
OnClickListener,OnTouchListener,OnFocusChangeListener
在这个案例中 点击按钮放大或缩小,触摸图片改变图片,以及获得焦点。
布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/btn_one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我的按钮一"
/>
<Button
android:id="@+id/btn_two"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ying"
/>
</LinearLayout>
avtivity代码
package button.dem;
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.view.View.OnTouchListener;
import android.widget.Button;
public class ButtonDemoActivity extends Activity implements OnClickListener,OnTouchListener,OnFocusChangeListener {
/** Called when the activity is first created. */
private Button btn_one;
private Button btn_two;
private int value = 1;//判断是否为放大或者缩小,1为放大,-1缩小
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn_one=(Button)findViewById(R.id.btn_one);
btn_two=(Button)findViewById(R.id.btn_two);
btn_one.setOnClickListener(this);
btn_two.setOnClickListener(this);
btn_two.setOnTouchListener(this);
btn_two.setOnFocusChangeListener(this);//设置焦点变化监听
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Button btn = (Button)v;
int width = getWindow().getWindowManager().getDefaultDisplay().getWidth();
if(value == 1 && btn.getWidth()>=width){
value = -1;
}
else if(value ==-1 && btn.getWidth()<100){
value =1;
}
btn.setWidth(btn.getWidth()+(int)(btn.getWidth()*0.1));
btn.setHeight(btn.getHeight()+(int)(btn.getHeight()*0.1));
}
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
int action = event.getAction();
if(action == MotionEvent.ACTION_DOWN){
btn_two.setBackgroundResource(R.drawable.ying);
}else if(action == MotionEvent.ACTION_UP){
btn_two.setBackgroundResource(R.drawable.ic_launcher);
}
return false;
}
@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
if(hasFocus){
btn_two.setBackgroundResource(R.drawable.ying);
}else {
btn_two.setBackgroundResource(R.drawable.ic_launcher);
}
}
}