类似支付宝的view点击效果透明度变化

原创 2016年08月29日 16:10:29

先上两个截图,如下:

支付宝: 


QQ:


如上两图用红色框框住的部分,当手纸按压时,图片透明度发生变化,但是背景颜色没有变化,这和我们平常所用的控件按压效果不太一样,但是要做到这种效果也不难,我们可以让美工做两套图片出来,然后设置正常状态和按压状态时的图片即可, 但是这样会造成应用的包体积很大,毕竟有很多地方都需要这种效果,不是首选之法。第二种方式是利用ImageView的tint属性即可达到这样效果,在xml文件中使用:android:tint =" ”或者在java代码中使用ImageView.setColorFilter();  ImageView的这个方法的作用就是给src中的图片加上一层遮罩层,再经过一些触摸事件的处理就能实现类似支付宝或者QQ中的效果。

下面直接给出一个我自己写的工具类,然后就可以一行代码实现这种效果,代码如下:

package com.lanma.conveniencecar.utils;

import android.graphics.Color;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;

/**
 * 作者 qiang_xi on 2016/8/29 14:12.
 * view初始化完毕之后,建议在onCreate方法里调用 ImageViewTintUtil.setImageViewTint((ImageView) findViewById(R.id.xx));即可
 */
public class ImageViewTintUtil {

    public static void setImageViewtint(final ImageView imageView, final int color) {
        imageView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                int action = event.getAction();
                switch (action) {
                    case MotionEvent.ACTION_DOWN:
                        imageView.setColorFilter(color);
                        break;
                    case MotionEvent.ACTION_UP:
                        imageView.setColorFilter(null);
                        break;
                }
                //这里一定要return false,不然该方法会拦截事件,造成不能响应点击等操作
                return false;
            }
        });
    }

    public static void setImageViewTint(final ImageView imageView) {
        imageView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                int action = event.getAction();
                switch (action) {
                    case MotionEvent.ACTION_DOWN:
                        imageView.setColorFilter(Color.parseColor("#89DBFA"));
                        break;
                    case MotionEvent.ACTION_UP:
                        imageView.setColorFilter(null);
                        break;
                }
                //这里一定要return false,不然该方法会拦截事件,造成不能响应点击等操作
                return false;
            }
        });
    }
}

注意事项:

已经在代码中表明的很清楚了,即一定要返回false,不然onTouch方法会拦截事件,导致ACTION_DOWN、ACTION_UP、ACTION_MOVE等一系列事件不再传递到ImageView的onTouchEvent()方法,进而造成不能响应点击事件等问题!!!

版权声明:本文为博主原创文章,未经博主允许不得转载。

支付宝即时到账接口调用实例

WEB项目接入支付宝接口开发流程 之前做web项目接入支付宝,网上看了很多文档和案列,不是不讲重点就是过时不适用了,导致走了很多弯路,经过冷静分析总算跑通了,这里分享下接入流程。 1.准备工作 ...
  • qq_36289377
  • qq_36289377
  • 2017年04月22日 17:22
  • 5912

支付宝接口

相信相同过App获取利润的都会需要接入计费SDK,下边就跟大家走一遍完整的支付宝SDK接入,支付系列均通过计费Button触发,计费所有代码均放到一个java文件实现,这样虽然会有点违背java面向对...
  • qq591920734
  • qq591920734
  • 2014年12月24日 11:26
  • 795

设置 view 的透明度

self.view.backgroundColor = [[UIColor redColor]colorWithAlphaComponent:0.5];
  • qq_27074387
  • qq_27074387
  • 2016年07月05日 18:41
  • 522

Android自定义View之点击效果

最近在做新版本,各种UI效果都需要自定义,而自定义View点击效果问题一直困扰着我。各种找资料也没有找到自己想要的东西,可能是我关键字打的不对吧。最后在查看TextView的源码时解决了我的问题,由于...
  • BlogLaughFace
  • BlogLaughFace
  • 2016年04月20日 10:52
  • 2198

Payment:支付宝即时到账接口接入教程

记住,如果觉得文档写得不清楚,一定要告诉我。励志写好文档为大家服务!Payment 3.0 支付宝的配置设置文档请 点击这里项目GitHub地址:https://github.com/helei112...
  • hel12he
  • hel12he
  • 2017年03月11日 22:31
  • 3154

android应用程序如何调用支付宝接口

最近在做一个关于购物商城的项目,项目里面付款这块我选的是调用支付宝的接口,因为用的人比较多。           在网上搜索了以下,有很多这方面的教程,但大部分教程过于陈旧,而且描述的过于简单。而且...
  • u013334392
  • u013334392
  • 2016年09月06日 16:35
  • 1343

iOS类似支付宝首页Item项的移动排序

看完上一篇的手势识别器之后,写了一个关于手势拖动Item进行移动变换顺序的demo 主要用的长按手势,效果如下: demo下载地址:https://github.com/tuwanli/ItemOrd...
  • tuwanli125
  • tuwanli125
  • 2016年01月13日 14:25
  • 1419

Android 之 View透明度的设置

1.xml中如下设置:           例00ffffff"       />           注解:红色部分为设置透明度,此时为全透明。则00~ff,由全透明到完全不透明过度。其中半透明应为...
  • u013647453
  • u013647453
  • 2014年03月04日 19:29
  • 2427

支付宝退款功能开发

当接到这个任务的时候,我说实话没搞过,之前搞过支付的,感觉退款应该很容易吧,但实际上并没有我想象的那么容易。(不是开发难,是别的问题) 首先,按照国际惯例,我先在支付宝的官网上查看开发文档 https...
  • qq_32079585
  • qq_32079585
  • 2017年05月12日 11:22
  • 3577

SSH开发支付宝即时到账

1.让公司申请支付宝商户账号,准备好下面四个资料     合作者账号     合作者身份(PID)        安全校验码(Key)       商户公钥  2.导入jar 3.appli...
  • peter_qyq
  • peter_qyq
  • 2016年07月26日 10:04
  • 1389
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:类似支付宝的view点击效果透明度变化
举报原因:
原因补充:

(最多只允许输入30个字)