这里例子实现的是当ImageButton获得焦点和失去焦点的反应。
1.当ImageButton获得焦点时,图片发生变化
2.当ImageButton失去焦点时,图片发生变化
为了作对比,实例中加入一个普通的Button按钮。
截图如下:
1.当获得焦点时
2.当失去焦点时
实现的代码如下:
public class EX04_02 extends Activity
{
/*宣告三个对象变量(图片按钮,按钮,与TextView)*/
private ImageButton mImageButton1;
private Button mButton1;
private TextView mTextView1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/*透过findViewById建构三个对象*/
mImageButton1 =(ImageButton) findViewById(R.id.myImageButton1);
mButton1=(Button)findViewById(R.id.myButton1);
mTextView1 = (TextView) findViewById(R.id.myTextView1);
/*透过OnFocusChangeListener来响应ImageButton的onFous事件*/
mImageButton1.setOnFocusChangeListener(new OnFocusChangeListener()
{
public void onFocusChange(View arg0, boolean isFocused)
{
// TODO Auto-generated method stub
/*若ImageButton状态为onFocus改变ImageButton的图片 * 并改变textView的文字*/
if (isFocused==true)
{
mTextView1.setText("图片按钮状态为:Got Focus");
mImageButton1.setImageResource(R.drawable.iconfull);
}
/*若ImageButton状态为offFocus改变ImageButton的图片 *并改变textView的文字*/
else
{
mTextView1.setText("图片按钮状态为:Lost Focus");
mImageButton1.setImageResource(R.drawable.iconempty);
}
}
}
);
/*透过onClickListener来响应ImageButton的onClick事件*/
mImageButton1.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
// TODO Auto-generated method stub
/*若ImageButton状态为onClick改变ImageButton的图片 * 并改变textView的文字*/
mTextView1.setText("图片按钮状态为:Got Click");
mImageButton1.setImageResource(R.drawable.iconfull);
}
}
);
/*透过onClickListener来响应Button的onClick事件*/
mButton1.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
// TODO Auto-generated method stub
/*若Button状态为onClick改变ImageButton的图片 * 并改变textView的文字*/
mTextView1.setText("图片按钮状态为:Lost Focus");
mImageButton1.setImageResource(R.drawable.iconempty);
}
}
);
}
}
实例的布局文件如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/white"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/myTextView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@drawable/blue"
android:text="@string/str_textview1"/>
<!--
預設圖片按鈕的default圖案透過drawable資源中取得
-->
<ImageButton
android:id="@+id/myImageButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/iconempty"/>
<Button
android:id="@+id/myButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_button1" />
</LinearLayout>