Android自定义Button并设置不同背景图片的方法
本文实例讲述了Android自定义Button并设置不同背景图片的方法。分享给大家供大家参考,具体如下:
1、自定义MyButton类
publicclassMyButtonextendsButton{
//Thisconstructormustbe
publicMyButton(Contextcontext,AttributeSetattrs){
super(context,attrs);
}
publicMyButton(Contextcontext){
super(context);
}
privatePaintmPaint=null;
privateStringmText;
privateintmX,mY;
publicvoidonSetText(Stringtext,intnLeft,intnBottom,intnTextSize,
intnTextColor){
mPaint=newPaint();
mPaint.setTextSize(nTextSize);
mPaint.setColor(nTextColor);
this.mText=text;
this.mX=nLeft;
this.mY=nBottom;
}
privateintmDownBmpId,mUpBmpId;
publicvoidonSetBmp(intnDownID,intnUpID){
this.mDownBmpId=nDownID;
this.mUpBmpId=nUpID;
}
@Override
publicvoidonDraw(Canvascanvas){
if(mPaint!=null)
canvas.drawText(mText,mX,mY,mPaint);
super.onDraw(canvas);
}
@Override
publicbooleanonTouchEvent(MotionEventevent){
if(event.getAction()==MotionEvent.ACTION_DOWN){
super.setBackgroundResource(mDownBmpId);
}elseif(event.getAction()==MotionEvent.ACTION_UP){
super.setBackgroundResource(mUpBmpId);
}
returnsuper.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控件。
MyButtonbtn=(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程序设计有所帮助。