当前位置: 首页 > 编程笔记 >

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

祝花蜂
2023-03-14
本文向大家介绍Android自定义Button并设置不同背景图片的方法,包括了Android自定义Button并设置不同背景图片的方法的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了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实现自定义带文字和图片Button的方法,包括了Android实现自定义带文字和图片Button的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android实现自定义带文字和图片Button的方法。分享给大家供大家参考。具体分析如下: 在Android开发中经常会需要用到带文字和图片的button,下面来讲解一下常用的实现办法。 一.用系统自带的Butt

  • 问题内容: 以下代码对我不起作用,任何人都可以帮忙弄清楚出什么问题了吗? 问题答案:

  • 本文向大家介绍DevExpress设置TreeList图片节点背景色的方法,包括了DevExpress设置TreeList图片节点背景色的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例展示了DevExpress设置TreeList图片节点背景色的方法,在项目开发中有一定的应用价值,具体方法如下所示: 主要功能代码如下: 代码使用方法如下: 代码运行效果如下图所示:

  • 问题内容: 当我尝试在Swift中创建按钮并设置背景图片时: 我总是收到一个错误:“ 无法将表达式的类型’Void’转换为’UIImage’ ”。 问题答案: 您的代码应如下所示

  • 我使用以下代码来设置jTable中的备用背景行颜色: 它是有效的。但是,我想使用自定义颜色(如rgb(242242))代替浅灰色作为替代颜色,但在执行以下操作时: 替代颜色完全被忽略,所有行都有白色背景。看起来此方法仅适用于属于颜色枚举的颜色。怎么会这样? 下面是一个完整的工作示例,随后是结果屏幕:

  • 本文向大家介绍PyQt5 实现给窗口设置背景图片的方法,包括了PyQt5 实现给窗口设置背景图片的方法的使用技巧和注意事项,需要的朋友参考一下 QPalette类可以十分简单的达到设置窗口背景图片的目的 以上这篇PyQt5 实现给窗口设置背景图片的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。