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"/>

2、1中创建的按钮的background用到了btn_st,在drawable下创建btn_st

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_activated="true" android:drawable="@drawable/color1"></item> <!-- 未点击时的颜色 -->

<item android:state_activated="false" android:drawable="@drawable/color2"></item> <!-- 点击后的颜色 -->

</selector>

3、在2中用到的color1和color2,在values的strings中添加

<drawable name="color1">#339966</drawable>

<drawable name="color2">#fff</drawable>

4、java代码

(1)首先获取button

  Button clickbtn =  (Button) findViewById(R.id.click);

(2)设置一个标记flag

  int flag = 0;

(3)给按钮添加监听事件

  clickbtn.setOnClickListener(new Button.OnClickListener() {

public void onClick(View v) {

switch(flag){

  case 0:

    mBtn[i].setActivated(false);

    flag = 1;

    break;

  case 1:

    mBtn[i].setActivated(true);

    flag = 0;

    break;

    }

  }

}

思路:给按钮设置激活/未激活两种不同颜色。当按钮点击一次、三次等奇数次时设置按钮为未激活状态(按下),当按钮点击偶数次是设置为激活状态(未按下)。

时间: 2024-07-31 14:33:18

Android实现按钮点击效果(第一次点击变色,第二次恢复)的相关文章

Android Ripple 按钮水波纹效果(二)优化

上一篇中我们讲了自定义ripple 水波纹效果,先来回顾一下效果吧! 看了以后感觉没甚么问题,我一开始也觉得很满意了,那好,我们拿Android 5.0自带的效果来对比一下 发现了不同之处没?点击中间的时候是看不出什么区别,但是点击两边的时候,就很明显了,我们自定义的效果,波纹向两边同速度的扩散,所以就会出现,如果点击点不在中心的时候,距离短的一边波纹先到达,而距离长的一边后到达,不能同时到达边缘!而系统自带的则不存在这种情况,所以这是一个优化点;另一个优化点是:我们自定义的效果,在波纹全部覆盖

Android Ripple 按钮水波纹效果(一)

看到android 5.0有一个按钮点击效果非常棒,先来看效果图: 但是这种效果只能在5.0的系统上有效果,如何在低版本上实现呢? 这种效果网上也有人实现了, blog 地址http://blog.csdn.net/singwhatiwanna/article/details/42614953 ok,直接进入主题, 要实现这种动画效果也不难,原理可以用一句话概括:就是,在我们按下view的时候,从按下的位置开始绘制圆,圆的半径一直增大,直至把View全部覆盖掉. 通过实现原理我们可以分析出,要实

[android] 切换按钮-自定义控件-拖动效果

重写View的onTouchEvent()方法,传递进来MotionEvent对象 调用MotionEvent对象的getAction()方法,获取当前动作 switch判断一下当前动作 事件为MotionEvent.ACTION_DOWN是手指第一次触摸屏幕 事件为MotionEvent.ACTION_MOVE是手指在屏幕上移动 事件为MotionEvent.ACTION_UP是手指离开屏幕 当手指触摸到屏幕 定义手指最后的坐标lastX 调用MotionEvent对象的getX() 方法,得

Android 浮动按钮的伸缩效果

在做项目时想增加点动感,于是就有如下效果: 实现起来也很简单,通过属性动画和recyclerview 滑动结合就很好实现了. 通过给recycleview添加一个滑动监听:通过滚动的差值来处理动画 mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newSt

实现类知乎android客户端关注和取消关注的按钮点击效果

先说明一下,项目代码已上传至github,不想看长篇大论的也可以先去下代码,对照代码,哪里不懂点哪里. 代码在这https://github.com/zgzczzw/ZHFollowButton 前几天发现知乎关注的点击效果确实赞,查了一下实现方式,刚好看到这个问题,花了一天时间终于把这个效果实现了,现在来回答一下,很不幸,楼上各位的答案都不全对,且听我一一道来. 首先,我先详细观察了一些知乎的效果,其中有一个很神奇的地方,如图: 注意看第二张图,这个圆形在扩散的时候,圆形底下的字还在,而且新的

android checkBox背景样式及用颜色值实现按钮点击效果

1  使用颜色值(不使用图片)来实现按钮的点击效果: color.xml <color name="head_color">#836FFF</color> <color name="information_title_color">#666666</color> <color name="list_bg_color">#FFF4F4F4</color> <color n

Android下实现win8的按钮点击效果

原理就是自定义一个imageButton,实现动画效果 demo源码下载地址:  请戳这里----------------> 关于回弹张力的效果扩展,可以参考Facebook的开源动画库rebound: https://github.com/facebook/rebound Android下实现win8的按钮点击效果

android 按钮背景 圆角+点击效果

今天做了个按钮,不想麻烦美工做图片,又不喜欢方角的图片,就用xml做了圆角的图片,做好之后发现,点击的时候看不出点击效果了,xml可以定义点击效果, 就想怎么能两个一起实现,网上找了下大致看了一遍都不是我想要的,就慢慢的试了试,结果两者一结合就OK了. 1 <Button 2 android:id="@+id/repeat" 3 android:layout_width="fill_parent" 4 android:layout_height="w

Android点击效果

我们在开发网站时,会发现当我们添加<a/>标签后,标签有一个点击效果,比如颜色变化,这样开看起来用户体验会很棒,那么在我们的Android开发中如何加入这样的效果呢?本篇就为大家揭开它的神秘面纱. 既然是点击事件的变化,我们就要监控用户是否点击,这里我有两种实现方式:1.通过改变背景图片达到上述效果:2.通过改变背景颜色来达到上述效果. 两者各有千秋,比如当我们设计按钮(Button)的点击事件时,建议使用第一种:而当我们设计诸如Item时,建议使用第二种.好了下面开始为大家进行代码分析: 首

Android 纯代码添加点击效果

项目中很多的Button, 同时配置很多按钮切图,Selector是不是很烦, 使用下面这个类,就可以直接为Button增加点击效果. 不用多个图片,不用Selector. 用法:Button.setOnTouchListener(Effect_Click.getInstance()); 效果图:    源码: class Effect_Click implements OnTouchListener { private static Effect_Click Effect_Click; pub