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

 更新时间:2016年01月16日 11:50:24   作者:nosxcy  
这篇文章主要介绍了Android自定义Button并设置不同背景图片的方法,涉及Android自定义控件的功能实现与布局相关技巧,需要的朋友可以参考下

本文实例讲述了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实现文字翻转动画的效果

    Android实现文字翻转动画的效果

    本文实现了Android程序文字翻转动画的实现,具有一定的参考价值,有需要的朋友可以了解一下。
    2016-10-10
  • Android设计模式系列之组合模式

    Android设计模式系列之组合模式

    这篇文章主要介绍了Android设计模式系列之组合模式的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • Android使用post方式上传图片到服务器的方法

    Android使用post方式上传图片到服务器的方法

    这篇文章主要介绍了Android使用post方式上传图片到服务器的方法,结合实例形式分析了Android文件传输的相关技巧,需要的朋友可以参考下
    2016-03-03
  • Android Studio 4.1没有GsonFormat插件的解决

    Android Studio 4.1没有GsonFormat插件的解决

    这篇文章主要介绍了Android Studio 4.1没有GsonFormat插件的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Android编程实现自定义ImageView圆图功能的方法

    Android编程实现自定义ImageView圆图功能的方法

    这篇文章主要介绍了Android编程实现自定义ImageView圆图功能的方法,结合实例形式分析了Android自定义ImageView及实现圆图效果的具体步骤与相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • Android中volley封装实践记录

    Android中volley封装实践记录

    这篇文章主要给大家介绍了关于Android中volley封装实践的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一学习学习吧
    2019-02-02
  • Android自定义View绘图实现拖影动画

    Android自定义View绘图实现拖影动画

    这篇文章主要介绍了Android自定义View绘图实现拖影动画,,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • Android编程实现输入框动态自动提示功能

    Android编程实现输入框动态自动提示功能

    这篇文章主要介绍了Android编程实现输入框动态自动提示功能,结合实例形式分析了AutoCompleteTextView相关使用技巧,需要的朋友可以参考下
    2017-03-03
  • Android中ListView的几种常见的优化方法总结

    Android中ListView的几种常见的优化方法总结

    Android中的ListView应该算是布局中几种最常用的组件之一,本篇文章主要做了三种优化总结,有兴趣的可以了解一下。
    2017-02-02
  • Android Camera2开启自动曝光功能

    Android Camera2开启自动曝光功能

    这篇文章主要为大家详细介绍了Android Camera2开启自动曝光功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01

最新评论