TouchImageView源码分析

touchImageView:这是一个android的视图,看起来像ios touchImageView android 拖拽imageView ,停留在四边框。 使用规则 To get a Git project into your build: Step 1. Add the JitPack repository to your build file gradle Add it in your root build.gradle at the end of repositories: allprojects { repositories { ... maven { url 'https://jitpack.io' } } } Step 2. Add the dependency dependencies { implementation 'com.github.jansonqiang:touchImageView:v1.0.1' } 立即下载

TouchImageView源码分析——请叫我代码侦探


github上有个不错得项目,https://github.com/Dreddik/AndroidTouchGallery


主要还是TouchImageView里面得源码分析,分析touch事件得传递流程


当点击这个GalleryViewPager里得TouchImageView的时候,打印出的结果为


down ==0,move==2,up ==1,cancle==3;

从打印分析可以看出,GalleryViewPager的onInerceptTouch拦截了down事件,但是执行了super的onInterceptTouch方法返回默认值false,然后就直接传递给了TouchImageView去执行down事件,在这里ViewPager和其它的ViewGroup的touch事件传递不同,因为这里的子View其实也是一个ViewGroup,也就是说,当ViewPager拦截的touch事件传递给这个Viewgroup子view的onTouchEvent事件后,即使子view的on touch事件返回的是false,也不会把touch事件传递给GalleryViewPager的ontouchevent处理。这点和一般的view group的touch事件的传递不太一样,具体我也不明白为什么。它就好像是ViewPager的直接子View的OnTouchEvent事件返回的是true一样。如下:



ViewPager里面设置的AdapterView为单个View非ViewGroup时候,touch事件传递,down后直接返回给ViewPager的TouchEvent处理,子view默认返回false;



但是当子View的onTouch事件返回的是true的话,不会直接将接下来的move的touch事件传递给ViewPager的onTouchEvent事件。而是自己消耗move事件。



ViewPager里面的onTouchEvent执行的时机是当子ViewGroup的子view,或者直接子view(这个子view的ontouchevent事件返回的是true)的touch事件为Action_cancle时才执行。


而如果是单独的一个ontouchevent事件返回的是false的非ViewGroup的子view则执行到down后就直接执行ViewPager里的onTouchEvent方法。


具体原因可以去看android系统源码

PS:可能这里分析会有很多问题,希望各位看到问题错误多批评指正,欢迎吐槽。

TouchImageView TouchImageView增加了触摸功能的Android ImageView的。它扩展了ImageView的添加各种功能,如双指缩放,拖动,一扔,双击缩放等TouchImageView打算尽可能接近镜面地缩放图像的功能,在多媒体应用程序。 立即下载

相关推荐

Android SmartImageView插件实现图片浏览功能

Android SmartImageView插件实现图片浏览功能

Android ImageViewTouch 用法

#render_0_527340024-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#render_0_527340024-svg .error-icon{fill:#552222;}#render_0_...

weixin_40856267的博客 191

IEEE Access投稿全流程解析:从初次提交到最终接收的完整指南

本文详细解析了IEEE Access期刊从初次投稿到最终接收的全流程,包括ORCID注册、论文投稿七步法、回稿再投流程及最终版提交等关键步骤。特别强调了4-6周快速同行评审的特点,为研究者提供了一份实用的投稿指南,帮助高效完成IEEE Access期刊投稿。

weixin_29273849的博客 915

如何用 Activate Power Mode 在 5 分钟内打造沉浸式编码体验

Activate Power Mode 是一款为 Atom 编辑器设计的插件,能够为你的编码过程添加炫酷的视觉和听觉效果,让编程变得更加有趣和沉浸式。通过简单的安装和设置,你就能在几分钟内开启全新的编码体验。 ## 快速安装:30秒完成部署 要开始使用 Activate Power Mode,只需通过 Atom 的包管理器进行安装: ```bash apm install activate-

gitblog_00027的博客 768

[0352]基于JAVA的停车场收费智慧管理系统的设计与实现

其次,从经营管理层面考虑,本系统涵盖了丰富的月卡管理和财务结算功能,如月卡用户管理、缴费、注销、挂失、解挂、补办等全流程服务,以及临保和月保的结算汇总与欠费查询等功能,这不仅有助于规范停车场的日常运营管理,更能有效提高财务管理效率,降低运营成本,实现精细化、数字化的财务管控。综上所述,本课题计划研发的基于Java的停车场收费智慧管理系统将在现有研究成果的基础上,重点优化月卡用户全生命周期管理和财务统计分析功能,以满足现代停车场高效、精准、安全的管理需求,紧跟行业发展趋势,为推动智慧城市的建设贡献一份力量。

muyu2980的专栏 590

FPGA赋能:从加权灰度均值到快速收敛的自动曝光实战

本文深入探讨了FPGA在工业视觉自动曝光算法中的应用,重点介绍了加权灰度均值法的优化实现与快速收敛策略。通过硬件友好的算法改造和流水线架构设计,FPGA方案能在1帧内完成曝光调整,显著提升处理速度和能效比,适用于复杂光照条件下的工业检测场景。

weixin_29306317的博客 82

xunfeng核心组件详解:nascan网络资产扫描模块深度剖析

xunfeng作为一款基于Go语言开发的Web框架,其nascan网络资产扫描模块是实现高效网络探测与资产发现的核心组件。该模块通过模块化设计,提供了从IP段解析到端口扫描、服务识别的全流程解决方案,为网络安全评估和资产梳理提供了强大支持。 ## 🌟 nascan模块架构概览 nascan模块采用多线程架构设计,主要由以下核心子模块构成: - **任务调度层**:通过`start.py`实

gitblog_00275的博客 1105

【NTN 卫星通信】Starlink 星链卫星有多大?详解尺寸与技术参数

SpaceX的星链项目正在重塑全球互联网连接,尤其是在服务不足的地区。但星链卫星的实际尺寸有多大?

weixin_43603524的博客 1万+

android 图片查看imageviewtouch,Android:滚动Imageview

它使我朝着需要的方向前进。这是我的修改版本,可停止在图像边缘滚动...// set maximum scroll amount (based on center of image)int maxX = (int)((bitmapWidth / 2) - (screenWidth / 2));int maxY = (int)((bitmapHeight / 2) - (screenHeight / ...

weixin_29325515的博客 374

告别效率低谷:用ADS仿真手把手教你设计高回退Doherty功放(附1:2非对称案例)

本文详细解析了如何使用ADS仿真设计高回退Doherty功放,特别针对1:2非对称架构进行深入探讨。通过优化功率分配比、峰值管开启阈值等关键参数,显著提升功放在9dB回退点的效率至75%以上,适用于LTE等高PAPR信号场景。文章还提供了ADS仿真环境搭建、参数优化及工程化设计的实用技巧。

weixin_33743248的博客 457

【49】Camunda8-Self-Managed部署之Docker方式

围绕camunda8 self-managed,介绍了基于Docker部署相关服务的过程。

AlieNeny的博客 1682

Android开发学习之ImageView手势拖拽、缩放、旋转

在Android应用中,图片随手势的拖拽、缩放、旋转在很多场景中都会用到,今天我们要做的就是在ImageView的基础上实现一个可以拖拽、缩放、转转的TouchView。 一、实现原理 OnTouch事件捕捉+Matrix矩阵变换 二、核心方法 拖拽:Matrix.postTranslate(DeltalX, DeltalY...

maozhuxigood 582

PHP实现获取当地网络时间​(附完整源码)

PHP实现获取当地网络时间​(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 237

Android技术汇总

目录 多媒体编程 图片加载库图片处理库图片加载相关博文图片处理相关博文视频相关-马上到来 网络编程 网络加载框架网络加载相关博文 数据处理 数据解析/序列化数据库ORM 自定义控件 开发辅助 综合开发框架 其他三方 测试相关 注: 加星号*的为重点推荐脑图地址: 戳这里 多媒体编程 图片加载库

fanenqian的博客 479

30. 用GPT-4自动生成测试用例的完整流程

利用GPT - 4生成测试用例面临的主要问题包括:如何准确地将软件需求转化为GPT - 4能够理解的输入提示,以确保生成的测试用例覆盖所有关键功能;如何评估生成的测试用例的有效性和充分性;如何处理生成的测试用例中的错误或不合理之处;以及如何将生成的测试用例集成到现有的测试框架中。

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 472

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Flutter 质量控制:beta 版本人工回归测试完整指南

本文是一份面向 Flutter 使用者与贡献者的质量保障(QA)实操指南,核心主题来源于本仓库的官方文档 [Quality-Assurance.md](https://link.gitcode.com/i/a4e819e9b480550d58f3bda61aa18b86):Flutter 团队在每个 beta 版本发布后都会开展一轮人工回归测试,以弥补自动化测试无法覆盖的盲区。读完本文,你将掌握如

gitblog_01013的博客 336

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

android 自定义ImageView实现图片手势滑动 多点触摸放大缩小效果

android 自定义ImageView实现图片手势滑动 多点触摸放大缩小效果

gfuugff的博客 7534

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

QMK 键盘固件完整上手指南:从换键位到自定义灯效,手把手带你搞定

QMK(Quantum Mechanical Keyboard)是一套开源键盘固件,把改键位、换层、写宏、调灯光这些活儿都从硬件搬到了软件里——你不用重焊一根线,敲几行命令就能让键盘焕然一新。本文面向有点电脑基础、想动手折腾键盘的普通用户,尽量不堆代码,带你把"从第一张键位图到烧录成功"这件事走通。 ## 想改键位,却不想重焊一根线? 你一定有过这种瞬间:用惯了 Caps Lock,发现它根本

gitblog_00034的博客 609

Android查看图片的控件:ImageViewTouch

mageViewTouch这是一个用于查看图片的view,可以通过双指缩小拉伸控制图片大小,也可以通过双击控制图片缩放,有三个缩放大小等级,使用也很简单

{丸の子} 944

android TouchImageView 进阶

实现图片放大缩小控制按钮进行大小缩放,双击放大缩小,移动,多点(两点)缩放功能  DrawImageLayout 包含多张图片,可选择不同图片进行操作 部分代码: <DrawImageLayout android:id="@+id/template_main" android:layout_width="match_parent

H291850336的专栏 1813

TouchImageView 实现图片的缩放,双击放大缩小,多点触控的功能

首先扯点别的:昨天约人打拳皇,又被一顿海虐,也是艰难。万水千山总是情,虐我轻点行不行?八神用的越来越水了,昨天下午饭都没有胃口了。看样是时候退出拳皇97界了。 进入正题:今天说一个GITHUB上的一个开源的项目TouchImageView,链接地址如下:TouchImageView,今天的博客就照着github上的英文给大家翻译一下(我得为自己的560的四级,460的六级找个说法啊),顺便给大家...

leilifengxingmw的博客 5690

android TouchImageView 初级篇

实现浮现放大缩小控制按钮进行大小缩放,双击放大缩小,移动,多点(两点)缩放功能 https://github.com/MikeOrtiz/TouchImageView <com.example.touch.TouchImageView android:layout_width="match_parent" android:

H291850336的专栏 1998

OpenToonz新手入门:4步从源码跑通第一个2D动画项目

OpenToonz 是由 DWANGO 发布的开源2D动画软件,脱胎于 Toonz Studio 吉卜力版本,面向独立动画师和小型工作室,覆盖逐帧绘制、摄影台、合成特效到导出的完整流程。本文以 Linux 为例从源码把它跑起来,讲清常用配置文件,最后走一遍完整的动画制作工作流。 ## 一、先看清 OpenToonz 的定位与边界 - **一套完整的2D工作流**:逐帧绘制、Xsheet 时间轴

gitblog_00759的博客 735

支持手势缩放的ImageView

前两篇文章讲解了Android的触控机制和手势操作,讲到多点触控时我们举了一个简单的手势缩放图片的例子,但是功能很有限。本篇我们通过解析一个国外大牛Mike Ortiz写的自定义TouchImageView的源码,来更加深入了解安卓触控和手势操作。 TouchImageView继承自ImageView具有ImageView的所有功能;除此之外,还有缩放、拖拽、双击放大等功能,支持viewpager

Watson的博客 3462

可以通过手势放大缩小图片的TouchImageView

package com.example.lianshou_test.view; import android.annotation.TargetApi; import android.content.Context; import android.content.res.Configuration; import android.graphics.Bitmap; import android.gr

帅呆sky的博客 2540
上一篇: 【转】android UI 相关常用类简介
下一篇: Android listview动态添加删除更新带ProgressBar的Item
fancylovejava
博客等级 码龄16年 1052粉丝 184原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值