android 按钮顶级效果_Android 源码之button高亮效果

android默认的button在点击以后有默认的高亮效果,但是默认的button比较丑,要替换成自己的按钮背景,采用的方法是:

button.setBackgroundDrawable(drawable);//or

button.setBackgroundResource(resid);

可是这样就没有了点击以后的高亮效果。要实现高亮的效果,网上采用的是在XML中配置的方法:

android:drawable="@drawable/highlight" />

以上代码没试过,暂且记录着,以后试过了补完具体怎么弄。

我在实际开发中,无法使用XML来配置,需要用代码实现点击高亮的效果。网上没找到现成的,找了一下发现有StateListDrawable就是起到这个作用,一句话就是在不同的状态刷不同的drawable。

Button confirmButton = new Button(this);

confirmButton.setPadding(10, 8, 10, 9);

confirmButton.setText("吧啦吧啦吧啦");

confirmButton.setTypeface(Typeface.MONOSPACE);

confirmButton.setTextColor(Color.WHITE);

confirmButton.setTextSize(20f);

confirmButton.setClickable(true);

confirmButton.setEnabled(true);

ShapeDrawable normalView = new ShapeDrawable(new RoundRectangleShape());

ShapeDrawable pressView = new ShapeDrawable(new RoundRectangleShape().setColor(0x805c5c5c));

StateListDrawable stateListDrawable = new StateListDrawable();

stateListDrawable.addState(new int[]{android.R.attr.state_pressed}, pressView);

stateListDrawable.addState(new int[]{android.R.attr.state_enabled}, normalView);

confirmButton.setBackgroundDrawable(stateListDrawable);

ViewGroup mainScreen = (ViewGroup) this.getLayoutInflater().inflate(

R.layout.activity_main, null);

mainScreen.addView(confirmButton, new LayoutParams(

LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/559260.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

李秀计算机文化基础,计算机文化基础(李秀)绪论.pptx

1计算机文化基础第一次大课:说在前面的话任课教师:李秀lx办公电话办公地点:东主楼8区313室2绪论课程定位课程要求及安排从信息技术产业的发展规律视角,对该产业建立一个整体概貌说在前面的话3课程定位计算机文化基础说文解字这是以…

600度近视眼恢复方法_高度近视600度如何恢复视力?有这三大办法可对付!

原标题:高度近视600度如何恢复视力?有这三大办法可对付!近视其实有3个门槛,很多人都不甚了解。近视度数低于300度,为轻度近视;近视度数高于300度,低于600度,为中度近视;近…

函数计算机怎么去掉fix,excel怎么使用fix函数取整

fiv函数的作用是取整,在excel当中该如何使用呢?下面就跟学习啦小编一起看看吧。excel使用fix函数取整的步骤1、首先我们打开一个工作样表作为例子。2、使用altf11组合快捷键进入vbe编辑器,插入一个新的模块,并在模块中输入以下代码&#xff…

creator 静态属性_CocosCreator cc.class声明类

定义类var Sprite cc.Class({name: "sprite"});var obj new Sprite();定义的类的类型名为 Sprite 可以用 new 构造一个对象。也可以不定义类名,直接构造类。构造函数——ctor/ __ ctor__ctor 不允许含有参数,如果构造时需要用到参数&#xf…

如何检测服务器运行正常运行,一种检测服务器运行状态的方法、装置和系统专利_专利查询 - 天眼查...

1. 一种检测服务器运行状态的方法,其特征在于,应用于客户端,所述客户端本地保存 有正常服务器信息表和故障服务器信息表;所述正常服务器信息表中存储有当前处于正常 状态的各服务器的标识信息,所述故障服务器信息表中存储有当前处…

问道五周年服务器维护公告,问道五周年 欢乐嘉年华

任务卷轴任务卷轴记录卷轴任务的道具,可以交易、摆摊、放入商店、卖给NPC、丢弃等操作,道具为打怪掉落或者商城购买,分为5个等级,等级越高,难度系数越高。卷轴使用1、右键点击使用道具,与道具等级不符的玩家…

datagridview设置为勾选才可编辑_使用lightroom前,做好这几项设置,有助于更好使用...

工欲善其事,必先利其器。每一款软件都有它需要特别关注的地方,在使用前做好相应的配置,可以大大提升使用体验,正所谓“磨刀不误砍柴工”。那lightroom使用前需要进行哪些设置呢?一、进行【首选项】设置1、如何打开【首…

惠普服务器u盘做win7系统,惠普u盘装win7系统 利用u盘装win7系统

现如今随着社会水平的提高,无论办公还是生活都是越来越离不开电脑,电脑品牌也很多,惠普电脑是比较受人关注的品牌电脑,惠普电脑在使用过程中系统可能会越来越卡顿或者出问题需要U盘重装系统,有些新手用户对于系统重装还…

mlag 堆叠_S-MLAG解决方案介绍

1摘要本文介绍了互联网接入层可靠性设计的发展和实现。随着互联网业务的快速的扩张和网络架构的发展,接入层可靠性也经历了从分到合,又从合到分的发展历程。本文讲述这一过程的同时也会详细阐述去堆叠技术的原理和实现方式。2服务器接入发展随着互联网的…

一般性能服务器图片及介绍,服务器内部主要几种硬件以及它们的作用介绍

服务器主要在网络中为客户端用户提供各种服务器的高性能的计算机,为用户提供计算、信息发布、数据管理等服务。但是这些服务器都离不开服务器的内部硬件支持。接下来,我们为大家介绍关于服务器的硬件有哪些以及它们的主要作用等知识。1.服务器CPU服务器的…

发那科攻丝回退参数_参数-Fanuc数控系统的攻丝拉拔动作倍率即回退速度倍率

众所周知Fanuc数控系统的参数多如牛毛。上千的参数,并且有的还是八位,虽然Fanuc发布有相关的参数说明书。但是,作为最终用户的我们,有的也只是公开发布的,也没有更新更全的相关资料。即便是有了相关书籍,又…

java 多态判断非空_Java 多态

父类的属性变量(例如变量 int a)可以被继承,同时在子类中也会同时继承该变量(super.int a,继承的变量),子类中也可以再次声明一个同名(可以同类型)的变量(double a,自己声明的同名变量),两者可以同时存在。在输出时候根据对象的引用名输出&am…

旋转轨迹_谁是最可怕的压轴题?——直线运动轨迹

运动问题是数学物理中非常喜欢研究的问题,这和我们本生生活的三维空间有密切的关系,我们无时无刻都在运动着,不论是坐着、站着还是躺着,都在不断运动。运动有复杂的运动,也有简单的运动,今天我们我们来聊一…

elementui表单校验原始密码_javascript 中入门数据校验

1.onSubmit 放在表单中,返回false为不提交 ,所以 放一个函数在里面所有的 数据获取,数据判断;都在内;(把一个value放到一个值,和另一个value值比对);2.获取提交的数据 ,判…

状态反射在体育运动中的作用_体育运动木地板时刻运行在最佳状态的秘诀

每日、每月和年度的维护可保持体育运动地板的外观和运动性能表现在最佳状态。大中小学校体育馆和商业运营场馆的维保人员承担着很多责任,其中最重要的是运动地板的护理和维护。体育场馆的运动地面一般由体育木地板、PVC地板或硅PU、丙烯酸地面等组成,因此…

chrome自动提交文件_实用!8个 chrome插件玩转GitHub,单个文件下载小意思

本文收录在个人博客,欢迎来寻宝实用!8个 chrome插件玩转GitHub,单个文件下载小意思​mp.weixin.qq.com作为程序员对 GitHub 应该都不会陌生,我经常沉迷其中,找一些惊艳的项目或者工具。不过用的时间久了,发…

vue 打开html流_在vue项目中添加一个html页面,开启本地服务器

在vue项目里新增一个不需要登录的页面,那么我只能新增一个html页面了,不经过路由,直接在浏览器输入路径打开,那么就需要用到本地服务器,1、vue里面的html页面最好放过在public文件夹里面,但是我的vue项目没…

c++保留小数点后三位数_C++保留有效位与保留小数位

如果想要保留n位小数 根据C++官网上的解释,该函数没有指定的返回类型,并且该函数用于设定输出操作上的小数精确位。 然后返回值中解释:未指定返回值,这个函数仅用于数据流修改操作上。 说了这么多,我想要表达的意思就是当我们需要将精确后的小数保存(将a精确后保存赋值给…

的translate插件_知否 ?知否 ?React插件了解一下!

为什么选择插件,而不是组件? 调用简单 this.$toast("xxx") ,不必再模板中提前定义 , 动态插入移除插件独立于业务更新不影响代码逻辑,做到热更新抽象,封装适用于toast,Dialog,Alert,…