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程序设计有所帮助。