Android Button按钮点击背景和文字变化操作

Android 原生的按钮点击状态是有变化的,但是如果是自己加了一个.png格式的图片为背景色,按钮点击就不会有任何效果,为了达到点击按钮有一闪的效果,我们就需要准备两张图进行切换, 而且文字也要变色,老规矩废话不多说直接上代码:

按钮背景图片放在 drawable/background_button.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

 <item android:drawable="@drawable/bg_press" android:state_pressed="true"/>
 <item android:drawable="@drawable/bg_normal" android:state_enabled="true"/>
 <item android:drawable="@drawable/bg_normal"/>
</selector>

准备两张图片一张为bg_press.png, 一张为 bg_normal.png。

在需要变化的按钮中设置:

   <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:layout_marginRight="50dp"
    android:focusable="false"
    android:gravity="center"
    android:textSize="24px"
    android:text="@string/str_tethering_modify"
    android:background="@drawable/background_button" />

这有背景色变化就解决完了,下面到按钮上的文字了,现在点击按钮按钮上的文字是没有变化的,为了达到按钮文字颜色的变化我们再新建一个xml文件。

按钮颜色变化 drawable/button_color.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

 <item android:state_pressed="true" android:color="#975508"/>
 <item android:state_focused="false" android:state_pressed="false" android:color="#E5960E"/>
 <item android:state_focused="true" android:color="#975508"/>
 <item android:state_focused="false" android:color="#E5960E"/>

</selector>

加入到我们的按钮textColor中

   <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:layout_marginRight="50dp"
    android:focusable="false"
    android:gravity="center"
    android:textSize="24px"
    android:textColor="@drawable/button_color"
    android:text="@string/str_tethering_modify"
    android:background="@drawable/background_button" />

这样直接使用背景和文字就都有点击效果啦,但是如果有这样一个需求,在某些条件下需要再设置按钮文字的颜色button.setTextColor(color),这样设置完后,发现我们按钮上文字点击又没有变化了,我之前试着直接 button.setTextColor(R.drawable.button_color);发现这样是没有任何用处的。这样就需要使用 ColorStateList 来解决,顾名思义,就是定义颜色的状态列表,通过监听按钮不同状态来设置不同的颜色,

老规矩,废话不多说了,直接贴代码:

 /**
  * 按钮点击颜色变化
  */
 private ColorStateList colorStateList;
 colorStateList = (ColorStateList)getResources().getColorStateList(R.drawable.button_color);
 if(xxx){
  button.setTextColor(Color.White);
 }else{
  button.setTextColor(colorStateList);
 }

这样就完美解决了按钮点击状态的变化啦。

补充知识:android studio设置按钮和背景融为一体也就是按钮去除阴影

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send"
android:onClick="sendMessage"
style="?android:attr/borderlessButtonStyle" />

以上这篇Android Button按钮点击背景和文字变化操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Android实现触发html页面的Button控件点击事件方式

    在android开发中,往往有时会加载html界面,同时需要与之html里面的控件进行交互.这里简单介绍一下如何在android中触发加载的html界面的Button控件. 1. 首先看Activity的代码: 首先我们要获取到当前的WebView控件,然后通过html的路径加载html界面,当前的html路径我是在本地的,然后设置 WebSettings webSettings = mWebView.getSettings(); 这一句代码.之后添加 webSettings.setJavaSc

  • android 控件同时监听单击和双击实例

    不适用click而用touch 自定义监听: class myOnGestureListener extends GestureDetector.SimpleOnGestureListener { @Override public boolean onDoubleTap(MotionEvent e) { //点赞 mLoadingListener.onFinishedLoading("0");//取消点赞 是一个接口 //已经点赞 更换图片 1:已经点赞 0 :没有点赞 if (lik

  • 解决Android-RecyclerView列表倒计时错乱问题

    前言 转眼间距离上次写博客已是过了一个年轮,期间发生了不少事:经历了离职.找工作,新公司的第一版项目上线.现在总算是有时间可以将遇到的问题梳理下了,后期有时间也会分享更多的东西-- 场景 今天分享的问题是当在列表里面显示倒计时,这时候滑动列表会出现时间显示不正常的问题.首先关于倒计时我们需要注意的问题有以下几方面: 在RecyclerView中ViewHolder的复用导致的时间乱跳的问题. 滑动列表时倒计时会重置的问题. 在退出页面后定时器的资源释放问题,这里我使用的是用系统自带的CountD

  • 解决TabLayout 不显示下划线问题

    如下所示: tabLayout.setSelectedTabIndicatorColor(Color.TRANSPARENT); tabLayout.setFocusableInTouchMode(false); 如果没有上面那个再进入页面时候回有默认的下划线显示 所以设置成透明再设置不聚焦的模式就实现下划线消失了 补充知识:Android开发,Design包下TabLayout一些属性修改,字体.下划线颜色 由于时间较长没有用到tablayout,在一次使用中向改变tablayout滑动字体颜

  • 解决Android popupWindow设置背景透明度无效的问题

    有的时候当我们使用popwindow时将当前的activity当做View传给其他fragment使用时会导致我们设置背景变暗效果失效,导致这个原因的问题是因为我们传view后当弹出popupwindw的时候已经不再当前的activity了,所以会显示无效 因此在设置的时候我们这样处理: public void backgroundAlpha(float bgAlpha) { //MApp.getInstance().getMainActivity()就是你想要点击时要显示的主activity

  • Android Button按钮点击背景和文字变化操作

    Android 原生的按钮点击状态是有变化的,但是如果是自己加了一个.png格式的图片为背景色,按钮点击就不会有任何效果,为了达到点击按钮有一闪的效果,我们就需要准备两张图进行切换, 而且文字也要变色,老规矩废话不多说直接上代码: 按钮背景图片放在 drawable/background_button.xml <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="h

  • Android实现按钮点击事件的三种方法总结

    目录 一.匿名内部类实现 二.接口实现 三.布局实现 Button是程序用于和用户进行交互的一个重要控件,相信大家对这个控件已经非常熟悉了,我们平时用的最多的控件之一.既然有Button,那肯定有onClick方法,下面就教大家三种实现点击事件的方法,大家选择一种自己喜欢的方式写就可以了. 我们先在layout文件里面放置一个Button控件,很简单,让它水平和垂直都居中,Button里面的文字也居中对齐,字体大小15sp,内容为“我是按钮”,具体代码如下: <RelativeLayout xm

  • Android 自定义按钮点击事件和长按事件对比

     Android 自定义按钮点击事件和长按事件对比 一个按钮同时实现点击和长按事件,有时候会有冲突,我们针对这一现象来自定义按钮来区分点击和长按事件 1.xml中 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="mat

  • Android悬浮按钮点击返回顶部FloatingActionButton

    先看一下Android悬浮按钮点击回到顶部的效果: FloatingActionButton是Design Support库中提供的一个控件,这个控件可以轻松实现悬浮按钮的效果 首先,要在项目中使用这个悬浮按钮就要先把design这个包导入项目 gradle中加入依赖 compile 'com.android.support:design:25.0.0' 接下来就是在xml中使用: 我这里是放置一个listView模拟返回顶部 <?xml version="1.0" encodi

  • layui使用button按钮 点击出现弹层 弹层中加载表单的实例

    1.html代码片段 <div class="layui-input-inline"> <button type="button" οnclick="selectRole()" class="layui-btn layui-btn-primary layui-btn-radius">选择角色</button> </div> 注意:必须添加 type="button&qu

  • android屏蔽按钮连续点击的示例代码

    android开发中,免不了会有很多按钮的点击,为防止用户故意为之,连续不停的点击按钮,造成短时间内不必要的请求过多,或者 出现多个跳转页面的问题,客户端需要对点击动作 做屏蔽处理,即屏蔽短时间内连续点击.(当然,这样也只是尽可能减少上述问题的出现,手速够快的情况下,还是会出现) 正确代码: abstract class OnMultiClickListener(private val interval: Long = MULTI_CLICK_INTERVAL): View.OnClickLis

  • Android Button按钮的四种点击事件

    本文实例为大家分享了安卓Button按钮的四种点击事件,供大家参考,具体内容如下 第一种:内部类实现 1.xml里面先设置Button属性 <Button android:id="+@id/button1"; android:layout_width="wrap_parent"; android:layout_height="wrap_parent" android:text="按钮"/> 2.找到按钮 Butto

  • Android实现按钮点击效果

    1.首先创建一个按钮 <Button android:id="@+id/click" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="点击变色" android:background="@drawable/btn_st" android:gravity="center&

  • android关于按钮点击效果实现的方法

    1.切换图片法 通过写XML文件切换图片实现点击效果图中 fabu1,fabu2为两张图片,点击显示fabu2不点击显示fabu1  在按钮的background属性下调用该XML文件 2.通过颜色转换实现 在color文件中定义颜色 然后写XML文件调用 图中base,huise为定义的两种颜色  改变颜色在控件的color属性下调用此XML文件 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下

  • JS实现点击button按钮切换图片

    JS实现点击button按钮切换图片的具体代码,供大家参考,具体内容如下 放暑假在家打算学习html/css/js制作网页,只有html/css的一些基础.实现效果如图: 这个网页很简单,是用Dreamweaver写的,但是是通过自己做的,算是对JS的一个入门案列. 最初的想法是是做一轮播效果,但是刚开始学JS发现有很多问题,所以就做了一个简单的图片切换. body部分: <body> <h1>JS实现图片的切换</h1> <div class="con

随机推荐