【原创】基于Android的具有背景图的图片按钮的创建方法
0赞感觉在Android的路上越走路越长,一路上充满乐趣,今天实现了一个小技术,不敢独自开心,与大家一起分享。
核心思想就是ImageButton 的焦点及事件处理。
下面我还是老方法,按步骤介绍吧。
① 新建工程
② 准备png 图片资源clickimage.png、lostfocusimage.png、onfocusimage.png
③ 在string.xml 中添加字符串
④ 修改main.xml 布局,添加布局元素
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#EE559611">
android:id="@+id/show_TextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/unknown"
/>
android:id="@+id/image_Button"
⑤ 修改mainActivity.java
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
package zyf.EX_Ctrl_2;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;
public class EX_Ctrl_2 extends Activity {
/** Called when the activity is first created. */
/* 声明三个对象变量(图片按钮,按钮,与TextView) */
private ImageButton mImageButton1;
private Button mButton1;
private TextView mTextView1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/* 通过findViewById 构造三个对象*/
mImageButton1 = (ImageButton) findViewById(R.id.image_Button );
mButton1 = (Button) findViewById(R.id.normal_Button );
mTextView1 = (TextView) findViewById(R.id.show_TextView);
/* 通过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(R.string.onfocus);
mImageButton1.setImageResource(R.drawable.onfocusimage);
} /*若
ImageButton 状
态
为
offFocus 改
变
ImageButton 的
图
片
并改变textView 的文字*/
else {
mTextView1.setText(R.string.lostfocus );
mImageButton1.setImageResource(R.drawable.lostfocusimage);
}
}
});
/* 通过onClickListener 来响应ImageButton 的onClick 事件*/
mImageButton1.setOnClickListener(new OnClickListener() {
public void onClick(View v){
// TODO Auto-generated method stub
/*若ImageButton 状态为onClick 改变ImageButton 的图片
并改变textView 的文字*/
mTextView1.setText(R.string.onclick);
mImageButton1.setImageResource(R.drawable.clickimage);
}
});
/*通过onClickListener 来响应Button 的onClick 事件*/
mButton1.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
/*若Button 状态为onClick 改变ImageButton 的图片
* 并改变textView 的文字*/
mTextView1.setText(R.string.lostfocus);
mImageButton1.setImageResource(R.drawable.lostfocusimage);
}
});
}
}
⑥ 结果
实现了感觉很有感觉,大家拍砖啊!