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背景图片

最新文章

  1. 【腾讯Bugly干货分享】Android动态布局入门及NinePatchChunk解密
  2. 【Android自学日记】搭建Android开发环境
  3. Day 6
  4. [转]设置Android手机以使用ARM Streamline进行性能分析(二)
  5. asp.net跳转页面的三种方法比较(转)
  6. 20145236 《Java程序设计》 第十周学习总结
  7. JDBC常用代码
  8. 如何用Java语言向串口读写数据
  9. 关于lab4实验git+近期出国手续办理
  10. ARM 汇编器对C的扩展
  11. IIS Express中如何配置支持json
  12. JQuery使用on绑定动态生成元素时碰到的问题
  13. 阿里云 Centos7.3安装mysql5.7.18 rpm安装
  14. python基础语法二
  15. vue 列表选中 v-for class
  16. Java编程思想学习笔记——初始化与清理(二)
  17. cocos代码研究(7)即时动作子类学习笔记
  18. Angular 4 模板表单校验
  19. PHP的Reflection反射机制
  20. PHP接入微信H5支付

热门文章

  1. PHP-Redis扩展使用手册(一)
  2. 关于Openlayer3的菜鸟认识
  3. ZeroMQ接口函数之 :zmq_msg_get - 获取消息的性质
  4. android4.4源码下载简介
  5. linux-系统调用
  6. HDU 3966 &amp; POJ 3237 &amp; HYSBZ 2243 树链剖分
  7. 获取打开指定Action的所有应用包名
  8. spawn协程学习
  9. How to use aws CloudFront for CDN
  10. Android--数据存储