iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Android如何扩大View点击范围
  • 395
分享到

Android如何扩大View点击范围

2023-06-15 03:06:43 395人浏览 泡泡鱼
摘要

这篇文章将为大家详细讲解有关Android如何扩大View点击范围,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。如下图所示,你的UI元素可能小于48dp,图标仅有32dp,按钮仅有40dp,但是他们的实际

这篇文章将为大家详细讲解有关Android如何扩大View点击范围,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

如下图所示,你的UI元素可能小于48dp,图标仅有32dp,按钮仅有40dp,但是他们的实际可操作焦点区域最好都应达到48dp的大小。

Android如何扩大View点击范围

为使小的UI区域获得良好的触摸交互,根据View的特性,目前碰到了两种情况:

如ImageView,设置其padding值,可触摸区域将向外扩展;

如Button,设置其padding值,可触摸区域不变,其内内容显示区域向内压缩;

情况1的控件,可直接设置其padding值达到目的,如 android:padding="10dp"  

情况2的控件,可使用TouchDelegate动态修改其触摸区域,达到扩大点击范围的效果

public static void expandViewTouchDelegate(final View view, final int top,                                           final int bottom, final int left, final int right) {     ((View) view.getParent()).post(new Runnable() {        @Override        public void run() {            Rect bounds = new Rect();            view.setEnabled(true);            view.getHitRect(bounds);             bounds.top -= top;            bounds.bottom += bottom;            bounds.left -= left;            bounds.right += right;             TouchDelegate touchDelegate = new TouchDelegate(bounds, view);             if (View.class.isInstance(view.getParent())) {                ((View) view.getParent()).setTouchDelegate(touchDelegate);            }        }    });}

采取此种方法的两点注意:

若View的自定义触摸范围超出Parent的大小,则超出的那部分无效。
2、一个Parent只能设置一个View的TouchDelegate,设置多个时只有最后设置的生效。

若需要恢复该View的触摸范围:

public static void restoreViewTouchDelegate(final View view) {     ((View) view.getParent()).post(new Runnable() {        @Override        public void run() {            Rect bounds = new Rect();            bounds.setEmpty();            TouchDelegate touchDelegate = new TouchDelegate(bounds, view);             if (View.class.isInstance(view.getParent())) {                ((View) view.getParent()).setTouchDelegate(touchDelegate);            }        }    });}

使用TouchDelegate扩大View的触摸响应范围是一种比较灵活的方法,有时可与设置padding的方式结合使用。

更新

======

后期实际开发中发现,使用post runnable的方式去设置Delegate区域大小的原因是,如该View师在Activity的OnCreate()或Fragment的OnCreateView()中绘制,此时UI界面尚未开始绘制,无法获得正确的坐标;

若将此法应用在ListView的getView()中绘制每个ItemView时,则Delegate的设置将部分失效,原因是ListView的绘制较特殊,可能无法获取到部分还未绘制出的View的正确坐标。解决方案具体可参考以下参考阅读所列。

Android是什么

Android是一种基于linux内核的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。

关于“Android如何扩大View点击范围”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: Android如何扩大View点击范围

本文链接: https://www.lsjlt.com/news/277059.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android如何扩大View点击范围
    这篇文章将为大家详细讲解有关Android如何扩大View点击范围,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。如下图所示,你的UI元素可能小于48dp,图标仅有32dp,按钮仅有40dp,但是他们的实际...
    99+
    2023-06-15
  • Android扩大View点击范围的方法
    目录更新参考阅读:如下图所示,你的UI元素可能小于48dp,图标仅有32dp,按钮仅有40dp,但是他们的实际可操作焦点区域最好都应达到48dp的大小。 为使小的UI区域获得良好的...
    99+
    2024-04-02
  • 大cc攻击如何防范
    预防大cc攻击的方法对服务器进行垂直扩展和水平扩容通过对服务器进行垂直扩展和水平扩容,提升服务本身处理并发的能力,从而提高应对cc攻击的能力。对数据进行缓存将服务中具备高度共性、可重用的数据进行缓存,减轻数据库的检索压力和应用服务器的计算压...
    99+
    2024-04-02
  • 如何分析Java float和double精度范围大小
    如何分析Java float和double精度范围大小,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java float和double精度范围大小要想理解floa...
    99+
    2023-06-25
  • android如何实现自动点击
    要实现自动点击,可以使用Android的AccessibilityService服务来实现。AccessibilityService...
    99+
    2023-10-24
    android
  • Dreamweaver如何使用命令检查站点链接的范围
    小编给大家分享一下Dreamweaver如何使用命令检查站点链接的范围,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!首先,我们点击菜单栏上方的站点小命令。接下来我...
    99+
    2023-06-08
  • Android如何实现按钮点击事件
    这篇文章主要讲解了“Android如何实现按钮点击事件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android如何实现按钮点击事件”吧!我们先在layout文件里面放置一个Button控...
    99+
    2023-06-30
  • Android如何实现ListView的点击变色
    这篇文章将为大家详细讲解有关Android如何实现ListView的点击变色,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Android 实现ListView的点击变色的实例我做了一个音乐播放器,其中用L...
    99+
    2023-05-30
    android listview
  • Android如何定义列表点击事件
    这篇文章将为大家详细讲解有关Android如何定义列表点击事件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。列表点击事件的定义在Adapter内创建接口,并设置set方法// 声明接口inter...
    99+
    2023-06-22
  • css如何实现点击图片放大
    这篇文章主要讲解了“css如何实现点击图片放大”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css如何实现点击图片放大”吧! 在...
    99+
    2024-04-02
  • Android如何优雅的处理重复点击
    目录之前的处理方式 现在的处理方式 其他场景处理重复点击 间接设置点击 富文本 列表 数据绑定 总结 项目地址 一般手机上的 Android App,主要的交互方式是点击。用户在点击...
    99+
    2024-04-02
  • 纯css如何实现点击图片放大
    本篇内容主要讲解“纯css如何实现点击图片放大”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“纯css如何实现点击图片放大”吧!纯css实现点击图片放大的方法:1、创建一个HTML示例文件;2、设...
    99+
    2023-07-05
  • CSS3如何实现点击放大的动画
    这篇文章将为大家详细讲解有关CSS3如何实现点击放大的动画,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。示例代码<!DOCTYPE html> &l...
    99+
    2024-04-02
  • 如何在Android中利用studio点击跳转WebView
    这篇文章主要介绍了如何在Android中利用studio点击跳转WebView,此处通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考价值,需要的朋友可以参考下:Android是什么Android是一种基于Linux内核的自...
    99+
    2023-05-30
    android studio webview
  • 如何利用Go语言开发点餐系统的外卖配送范围功能
    随着外卖业务的发展,外卖配送范围功能成为了外卖点餐系统中一个非常重要的功能点。为了满足用户的需求,很多外卖平台都会提供这样一个功能。那么如何利用Go语言开发这个配送范围功能呢?本文将详细介绍这个过程,并提供具体的代码示例,以便读者更好地了解...
    99+
    2023-11-01
    Go语言 点餐系统 外卖配送范围
  • Android 如何拦截用户频繁操作(点击事件)
    目录前言解决方案场景1场景2总结前言 在 Android 界面开发中,频繁操作是一个需要注意的点。 频繁操作: 频繁点击一个按钮,或者同时点击多个item,等产生的冲突情况。 解决...
    99+
    2024-04-02
  • Android开发如何解决安卓重复点击问题
    这篇文章主要介绍“Android开发如何解决安卓重复点击问题”,在日常操作中,相信很多人在Android开发如何解决安卓重复点击问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android开发如何解决安卓...
    99+
    2023-07-02
  • Android中Button如何实现点击换图案及颜色
    这篇文章给大家分享的是有关Android中Button如何实现点击换图案及颜色的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。基本框架<xml version="1.0"&nbs...
    99+
    2023-06-26
  • Vue后台如何实现点击图片放大功能
    本文小编为大家详细介绍“Vue后台如何实现点击图片放大功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue后台如何实现点击图片放大功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。需求点击小图可以放大,放大...
    99+
    2023-07-04
  • Vue如何实现点击图片放大显示功能
    这篇文章主要讲解了“Vue如何实现点击图片放大显示功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue如何实现点击图片放大显示功能”吧!方式一:列表中感应鼠标显示大图我管理后台使用的是 ...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作