利用TouchDelegate提升用户体验

简介: 探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制Android多...

探索Android软键盘的疑难杂症
深入探讨Android异步精髓Handler
详解Android主流框架不可或缺的基石
站在源码的肩膀上全解Scroller工作机制


Android多分辨率适配框架(1)— 核心基础
Android多分辨率适配框架(2)— 原理剖析
Android多分辨率适配框架(3)— 使用指南


自定义View系列教程00–推翻自己和过往,重学自定义View
自定义View系列教程01–常用工具介绍
自定义View系列教程02–onMeasure源码详尽分析
自定义View系列教程03–onLayout源码详尽分析
自定义View系列教程04–Draw源码分析及其实践
自定义View系列教程05–示例分析
自定义View系列教程06–详解View的Touch事件处理
自定义View系列教程07–详解ViewGroup分发Touch事件
自定义View系列教程08–滑动冲突的产生及其处理


最近在维护公司的老项目,客户反馈了一个问题:
点赞的红色小桃心有时点击之后没有响应。


嗯哼,既然客户说有这个问题,那么就需要确认一下。
从豌豆荚上下载了一个最新版本,安装后跳转到详情页面,然后点赞。反复操作几次发现:有时果然点不到。检查一下代码ClickListener没有问题,但是由于该图片较小(150*150),导致有时点击不到该图片从而带来不太好的用户体验。


那么这个小问题可以怎么来优化呢?

方法一

在该图片外包裹一层布局比如RelativeLayout且设定其大小(比如300*300).然后为该布局设置ClickListener响应点赞操作。
通过这么做,可以达到目的,但是有点繁琐,改了布局文件还要修改代码。

方法二

利用TouchDelegate扩大View的可触摸范围,核心代码如下:

public static void setTouchDelegate(final View view, final int expandTouchWidth) {
        final View parentView = (View) view.getParent();
        parentView.post(new Runnable() {
            @Override
            public void run() {
                final Rect rect = new Rect();
                view.getHitRect(rect);
                rect.top -= expandTouchWidth;
                rect.bottom += expandTouchWidth;
                rect.left -= expandTouchWidth;
                rect.right += expandTouchWidth;
                TouchDelegate touchDelegate = new TouchDelegate(rect, view);
                parentView.setTouchDelegate(touchDelegate);
            }
        });
    }

怎么调用该方法呢?

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mContext=this;
        mPraiseImageView= (ImageView) findViewById(R.id.praiseImageView);
        setTouchDelegate(mPraiseImageView,200);
        mPraiseImageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(mContext,"点赞成功",Toast.LENGTH_SHORT).show();
            }
        });
    }

在此,将点赞按钮的可触摸范围扩大200px

setTouchDelegate(mPraiseImageView,200);

从而提升了用户体验。

这样做不用调整布局文件,只用修改代码即可。

相关文章
|
1月前
|
缓存 前端开发 JavaScript
揭秘前端性能优化:从代码到用户体验的全面升级
揭秘前端性能优化:从代码到用户体验的全面升级
19 0
|
2月前
|
搜索推荐 安全 Android开发
如何优化安卓应用的用户体验
【2月更文挑战第9天】在当今移动互联网时代,安卓应用已成为人们日常生活中不可或缺的一部分。然而,用户对应用的使用体验越来越苛刻,一个不好的应用体验很容易导致用户的流失。本文将介绍如何从多个方面优化安卓应用的用户体验。
|
7月前
|
编解码 前端开发 UED
移动优化:提升用户体验的关键
在移动设备成为人们生活中不可或缺的一部分之后,移动优化已经成为现代网站和应用程序开发的重要组成部分。优化网站或应用程序以适应小屏幕和有限的网络带宽可以显著提高用户体验,增加用户满意度。本博客将深入探讨移动优化的核心概念、最佳实践以及如何确保您的项目在移动设备上表现出色。
77 0
|
2月前
|
自然语言处理 前端开发 vr&ar
前端开发趋势:探索未来的用户体验
【2月更文挑战第8天】本文将深入探讨前端开发领域中的最新趋势,重点关注与用户体验相关的技术和方法。我们将介绍一些前沿的前端技术,如PWA、AR/VR、自然语言处理等,并探讨它们对未来用户体验的影响。通过了解这些趋势,前端开发者可以更好地把握市场动向,为用户提供更出色的交互体验。
|
4月前
|
缓存 前端开发 UED
前端用户体验优化指南
前端用户体验优化指南
55 1
|
弹性计算 物联网 数据安全/隐私保护
|
前端开发 人机交互 UED
浅谈前端视角下的用户体验
浅谈前端视角下的用户体验
1198 0
浅谈前端视角下的用户体验
|
存储 SQL 程序员
关于使用阿里云的用户体验
在平时的工程需要中,我们需要将一定设计的程序功能进行存储和共享,如果按照传统的方式进行,那个会存在一个问题,那就是怎样能够在最大限度内实现最大效率?这里所说的最大效率是指时间和空间的便捷。阿里云平台的设计很好的解决了这个问题:在时间上,大家只需要登陆账号就可以登陆,这个平台相当于一个云端计算机,在时间上,能够大大缩短时间;在空间上,由于程序功能的共享会涉及到存储的问题,我觉得,以目前的程序需求来看,阿里云这个云端计算机是足够使用的。总的来说,阿里云平台的设计在时间、空间以及各方面的使用感都是不错的,我都十分推荐大家使用。
10大用户体验技巧!
本文由Mockplus(摹客)团队翻译,仅供学习交流。 UX(即用户体验)是通过提高用户与设计界面交互的可访问性,可用性以及效率来提升用户满意度的方法。
1000 0