Android自定义Button并设置不同背景图片的方法

所属分类: 软件编程 / Android 阅读数: 1111
收藏 0 赞 0 分享

本文实例讲述了Android自定义Button并设置不同背景图片的方法。分享给大家供大家参考,具体如下:

1、自定义MyButton类

public class MyButton extends Button {
//This constructormust be 
public MyButton(Context context, AttributeSet attrs) {
 super(context, attrs);
 }
 public MyButton(Context context) {
 super(context);
 }
 private Paint mPaint = null;
 private String mText;
 private int mX, mY;
 public void onSetText(String text, int nLeft, int nBottom, int nTextSize,
  int nTextColor) {
 mPaint = new Paint();
 mPaint.setTextSize(nTextSize);
 mPaint.setColor(nTextColor);
 this.mText = text;
 this.mX = nLeft;
 this.mY = nBottom;
 }
 private int mDownBmpId, mUpBmpId;
 public void onSetBmp(int nDownID, int nUpID) {
 this.mDownBmpId = nDownID;
 this.mUpBmpId = nUpID;
 }
 @Override
 public void onDraw(Canvas canvas) {
 if (mPaint != null)
  canvas.drawText(mText, mX, mY, mPaint);
 super.onDraw(canvas);
 }
 @Override
 public boolean onTouchEvent(MotionEvent event) {
 if (event.getAction() == MotionEvent.ACTION_DOWN) {
  super.setBackgroundResource(mDownBmpId);
 } else if (event.getAction() == MotionEvent.ACTION_UP) {
  super.setBackgroundResource(mUpBmpId);
 }
 return super.onTouchEvent(event);
 }
}

2、 在xml布局文件中添加MyButton控件,像应用普通的Button控件一样。

<com.MyButton
  android:id="@+id/test_btn" android:layout_width="120px"
  android:layout_height="fill_parent" android:text="Test"
  android:background="@drawable/btn_u" />

其中com.MyButton是你定义的MyButton类所在的包名

3、在onCreate()中加载MyButton控件。

MyButton btn = (MyButton)findViewById(R.id.test_btn);
btn.onSetBmp(R.drawable.btn_d, R.drawable.btn_u);

其中btn_d表示为按下btn时背景图片,btn_u为默认状态下btn背景图片

更多关于Android控件相关内容感兴趣的读者可查看本站专题:《Android控件用法总结

希望本文所述对大家Android程序设计有所帮助。

更多精彩内容其他人还在看

Android网络编程之获取网络上的Json数据实例

这篇文章主要介绍了Android网络编程之获取网络上的Json数据实例,本文用完整的代码实例讲解了在Android中读取网络中Json数据的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中的windowSoftInputMode属性详解

这篇文章主要介绍了Android中的windowSoftInputMode属性详解,本文对windowSoftInputMode的9个属性做了详细总结,需要的朋友可以参考下
收藏 0 赞 0 分享

Android网络编程之UDP通信模型实例

这篇文章主要介绍了Android网络编程之UDP通信模型实例,本文给出了服务端代码和客户端代码,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中使用ListView实现漂亮的表格效果

这篇文章主要介绍了Android中使用ListView实现漂亮的表格效果,本文用详细的代码实例创建了一个股票行情表格,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中刷新界面的二种方法

这篇文章主要介绍了Android中刷新界面的二种方法,本文使用Handler、postInvalidate两种方法实现界面刷新,需要的朋友可以参考下
收藏 0 赞 0 分享

Android SDK三种更新失败及其解决方法

这篇文章主要介绍了Android SDK三种更新失败及其解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(一)

Android3.0(API level 11)开始,Android设备不再需要专门的菜单键。随着这种变化,Android app应该取消对传统6项菜单的依赖。取而代之的是提供anction bar来提供基本的用户功能
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(二)

这次将继续上一篇文章没有讲完的Menu的学习,上下文菜单(Context menu)和弹出菜单(Popup menu)
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(三)

今天继续昨天没有讲完的Menu的学习,主要是Popup Menu的学习,需要的朋友可以参考下
收藏 0 赞 0 分享

Android显示网络图片实例

这篇文章主要介绍了Android显示网络图片的方法,以实例形式展示了Android程序显示网络图片的方法,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多