欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2024-02-18 09:10:52
本文实例讲述了android自定义button并设置不同背景图片的方法。分享给大家供大家参考,具体如下: 1、自定义mybutton类 public class...

本文实例讲述了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程序设计有所帮助。