利用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);

从而提升了用户体验。

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

相关文章
|
6月前
|
搜索推荐 安全 Android开发
如何优化安卓应用的用户体验
【2月更文挑战第9天】在当今移动互联网时代,安卓应用已成为人们日常生活中不可或缺的一部分。然而,用户对应用的使用体验越来越苛刻,一个不好的应用体验很容易导致用户的流失。本文将介绍如何从多个方面优化安卓应用的用户体验。
|
编解码 前端开发 UED
移动优化:提升用户体验的关键
在移动设备成为人们生活中不可或缺的一部分之后,移动优化已经成为现代网站和应用程序开发的重要组成部分。优化网站或应用程序以适应小屏幕和有限的网络带宽可以显著提高用户体验,增加用户满意度。本博客将深入探讨移动优化的核心概念、最佳实践以及如何确保您的项目在移动设备上表现出色。
214 0
|
25天前
|
前端开发 JavaScript UED
深入了解前端性能优化:提高用户体验的关键
【10月更文挑战第9天】深入了解前端性能优化:提高用户体验的关键
42 5
|
25天前
|
缓存 监控 搜索推荐
改善用户体验,
【10月更文挑战第9天】改善用户体验,
26 1
|
25天前
|
敏捷开发 安全 前端开发
改进产品的用户体验
【10月更文挑战第9天】改进产品的用户体验
15 2
|
25天前
|
搜索推荐 前端开发 数据安全/隐私保护
改善用户体验方法
【10月更文挑战第9天】改善用户体验方法
24 3
|
27天前
|
前端开发 JavaScript 应用服务中间件
前端性能优化:提升用户体验的关键
【10月更文挑战第7天】前端性能优化:提升用户体验的关键
34 0
|
6月前
|
编解码 测试技术 Android开发
安卓应用开发:打造流畅的用户体验
【4月更文挑战第29天】在竞争激烈的应用市场中,一个具有流畅用户体验的安卓应用是吸引和保留用户的关键因素。本文将深入探讨如何通过优化代码、使用高效的架构模式以及利用安卓系统提供的工具来提升应用性能,从而打造出让用户满意的流畅体验。
|
6月前
|
缓存 前端开发 UED
前端用户体验优化指南
前端用户体验优化指南
86 1