本文实例讲述了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控件一样。

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自定义Button并设置不同背景图片的方法相关推荐

  1. android alertdialog 背景透明,Android Alertdialog弹出框设置半透明背景

    自定义AlertDialog基本步骤: 1.写一个layout布局,使用inflater生成对应view对象 2.新建AlertDialog.Builder对象builder 3.builder设置自 ...

  2. 【Android】代码中动态设置 drawable 背景

    如图这样的效果,我们平时直接可以在 xml 写死. 写法很简单. <?xml version="1.0" encoding="utf-8"?>< ...

  3. 计算机怎么换背景图片,电脑开机背景图怎么换_怎么设置开机背景的教程

    最近有不少朋友问小编电脑开机背景图怎么换的问题,对于怎么设置开机背景的问题,相信还有很多朋友不太明白,有时候我们感觉系统自带的开机背景图片不好看,不符合我们的审美,想要换成我们喜欢的开机背景图,那么应 ...

  4. Android中遇到button按钮设置背景图片无法显示的解决方案

    给button设置了background的属性却显示不出来 1.在图片导入时选错位置,应该选择第一个位置,如果选了第二个图片后面会有(v24)[如下图]就有可能加载不出来.  新版引入drawable ...

  5. android alertdialog_Android进阶:Activity设置主题背景后AlertDialog的背景随之改变的问题分析

    在制作App的闪屏页时如果你仔细观察就会发现,每次你在手机桌面点击图标启动应用时会先出现一个白色背景(也就是我们通常所说的白屏),然后才会跳转到闪屏页. 就像这样: 关于如何解决启动时的白屏问题,大家 ...

  6. JAVA 浏览器下载excel,自定义样式:合并单元格,设置多种背景填充颜色,冻结窗格

    添加依赖: <!-- POI --><dependency><groupId>org.apache.poi</groupId><artifactI ...

  7. android手机禁止休眠_android设置屏幕禁止休眠的方法

    在正常情况下,Android系统会让程序和服务进入休眠状态以节约电量使用.然而在开发Android程序时,有时候在程序运行的时候,不能让系统休眠,否则有一些运行会停止,因此我们需要设置禁止休眠.And ...

  8. 平板win10 android哪个耗电,Win10充分利用设置提升平板/笔记本电池续航方法

    当今,越来越多的人选择在各种各样的移动便携设备,包括手机.平板和笔记本上完成各种事情.在这些设备中最影响生产力的便是电池续航,虽然近些年来电池技术有了很大改进,但是离人们普遍期望还有一些距离. 在Wi ...

  9. java jbutton 背景颜色_java – 在Windows上设置JButton背景颜色

    我有一个JButton,我想将背景设置为一种颜色. JButton button = new JButton(); button.setVisible(true); button.setPreferr ...

最新文章

  1. 新兴解决方案增强了电动汽车电源(功耗)管理
  2. 计算机dns的工作原理,DNS的工作原理图解说明
  3. C#文件操作基础之File类和FileInfo类
  4. Struts2中的OGNL表达式
  5. oracle 查看用户、权限、角色
  6. Qt文档阅读笔记|Qt实践| HTTPS知识点-获取某站点SSL证书
  7. java定时器参数_Java报表软件定时器参数之一
  8. ResNet改进版来了!可训练网络超过3000层!相同深度精度更高
  9. 英雄七十寿 无物下冷酒 横刀上闹市 直取数人头
  10. java代码删除本地文件_java程序实现删除本地文件
  11. Maven的下载与配置(包含阿里云镜像配置)
  12. keras-yolo3-master使用记录
  13. Bribing FIPA
  14. 洛马公司获得阿联酋“萨德”导弹防御系统支持合同-我爱无人机网
  15. 林轩田之机器学习课程笔记( embedding numerous feature之dual support vector machine)(32之18)
  16. 如何用Python找回微信撤回信息
  17. 本地数据库IndexedDB - 初学者
  18. 生产者消费者模型问题
  19. JavaScript学习过程
  20. 高血糖的饮食注意事项

热门文章

  1. python观察日志(part24)--列表和numpy数组扁平化
  2. 探索Julia(part8)--循环语句和条件语句
  3. 聚类算法(part1)--DBSCAN
  4. SAP Spartacus Cart UI 修改 quantity 字段后的 Patch 请求遇到 400 错误 - IllegalArgumentError
  5. SAP UI5 应用开发教程之九 - 创建第一个 Component
  6. HTTP 头部字段 Cache Control max-age = 0 和 no-cache 的区别
  7. SAP Spartacus 服务器端渲染处理内存泄漏的准则
  8. Angular router-outlet占位符层级结构的子节点,运行时是如何插入的
  9. SAP Spartacus的登录验证机制 - user login Authentication
  10. SAP Spartacus的b2cLayoutConfig