View位置参数与滑动全解析

  • 时间:
  • 浏览:0
  • 来源:大发5分6合APP下载_大发5分6合APP官方

测试文字点击事件有效

View的宽高与坐标的关系:

不在 综合对比你什儿 种方法,其他人的特点是哪几种呢:

有之后点击测试文字,看一下打印的结果:

关于正确获取组件的宽高,可参考以下这篇博文:

目前Android中实现View的滑动还能能分为四种 方法:

http://blog.csdn.net/qq_23547831/article/details/51764304

测试文字的初始位置参数如下所示:

这里将一一解析你什儿 种方法的用法与区别:

View的位置主要由它的5个顶点来决定,分别对应View的5个属性:top,left,right,bottom,其中top是左上角纵坐标 ,left是左上角横坐标,right是右下角横坐标,bottom是右下角纵坐标。需要注意的是,哪几种坐标总要 相对于View的父容器来说的,有之后它是四种 相对坐标。具体参数看下图:

通过改变View的布局参数使得View重新布局从而实现滑动 ,操作稍微复杂化,适用于有交互的View

测试文字位置参数不变:

测试代码:

通过改变View的布局参数使得View重新布局从而实现滑动

获取屏幕的强度与强度,有之后重写Activity的onWindowFocusChanged方法,获取View的位置参数。刚开使了我把哪几种方法直接写在onCreate中,获取到的值总要 0。之后才知道,width、height、top、left等属性值是在Measure与Layout过程完成前一天才开使了正确赋值的,而Measure与Layout都晚于onCreate方法执行,统统onCreate中根本就取还能能 值!

首先看一下大伙测试的布局文件

测试文字位置参数不变:

7.使用属性动画实现view的移动:

还是前一天的布局,大伙给测试文字加进去去另一4个 触摸监听:

4.使用scrollTo(int x, int y)方法进行移动:

通过动画给View施加平移效果来实现滑动,操作简单,主要适用于不在 交互的View和实现复杂化的动画效果

测试文字点击事件有效

getX():获取点击事件相对控件左边的x轴坐标,即点击事件距离控件左边的距离

getY():获取点击事件相对控件顶边的y轴坐标,即点击事件距离控件顶边的距离

getRawX():获取点击事件相对整个屏幕左边的x轴坐标,即点击事件距离整个屏幕左边的距离

getRawY():获取点击事件相对整个屏幕顶边的y轴坐标,即点击事件距离整个屏幕顶边的距离

使用补间动画实现的测试文字滑动,会意味测试文字的点击事件无效,还能能都还能能 点痛 击原区域,事件才会有效!!!

TouchSlop是系统所能识别出的最小的滑动距离,意味两次滑动之间的距离小于你什儿 常量,不在 系统就不认为你是在进行滑动操作。

2.使用offsetTopAndBottom(int offset)与offsetLeftAndRight(int offset)方法进行偏移:

点击按钮的前一天,滑动测试文字textView,打印textView的位置参数,有之后监听textView的点击事件。

在Android中,坐标系的原点在屏幕的左上角(不包括具体情况栏与标题栏的每项),x轴和y轴的正方向分别为向右和向下,你什儿 点有点痛 要。

通过scrollTo/scrollBy方法来实现View的滑动,操作简单,适合对View内容的滑动

三.View滑动全解析

最后我将得到的宽高单位从(px)转加进去了(dp),还能能看了大小与大伙在xml中设置的一致,完美~

一起看看为什么我么我在么在实现的:

测试文字位置参数不变:

你什儿 方法获取的是View在当前窗口的绝对坐标,看一下测试代码:

width = right - left

height = bottom - top

通过动画给View施加平移效果来实现滑动

通过scrollTo/scrollBy方法来实现View的滑动

1.View的getTop(),getLeft(), getRight(),getBottom()

1.使用layout(int l, int t, int r, int b)方法重新布局:

测试文字位置参数不变:

测试结果:

6.使用补间动画实现view的移动:

测试文字点击事件有效

测试文字位置参数改变:

测试文字位置参数不变:

一. View位置参数与坐标分析

测试文字位置参数改变:

打印结果里的线性布局统统父线性布局。还能能看了,你什儿 线性布局的绝对纵坐标包括了通知栏与具体情况栏的强度,大伙在实际项目运用你什儿 方法的过程中,一定记得减去你什儿 强度。意味Android坐标系的原点在屏幕的左上角(不包括具体情况栏与标题栏的每项)。

5.使用scrollBy(int x, int y)方法进行移动:

View的位置参数是相对于自身的父容器来说的,是相对坐标还能能看了测试文字的坐标参数是相对于其他人的父容器计算的。

3.MotionEvent的getX(),getY(),getRawX(),getRawY()

线性布局竖直排列,从上到下依次为另一4个 Button,另一4个 包括TextView的线性布局,强度,强度,边距的设置如图所示。看看在Activity中为什么我么我在么在获取它的位置参数:

不在 你什儿 结果在还能能滑动的控件中是怎样的呢,比如ListView,RecyclerView。觉得对于你什儿 滑动的ViewGroup,大伙在获取ViewGroup的坐标值时暂且需要考虑它到底滑动了哪好多个(实际滑动的大伙应该看作是ViewGroup中的View在滑动)。获取到的结果与这里还是一样的,具体应用案例可参考我前一天一篇博客:

使用属性动画实现的测试文字滑动,点击事件依然有效!!!

这里的单位默认总要 px,从以上结果大伙还能能得到以下结论:

测试文字点击事件有效

测试文字点击事件有效

2.View的getLocationInWindow()

有之后统统Activity里的代码:

首先理解这5个参数的意义:

3. 通过动画给View施加平移效果来实现滑动

关于view的scrollTo方法,我在 RecyclerView学习(三)—-高仿知乎的侧滑删除 这篇博客含有很全部的介绍,大伙也还能能参考启舰大神的ListView滑动删除实现之二——scrollTo、scrollBy详解。

通过加进去去不同的方法来滑动测试文字,有之后打印位置参数。所有方法的测试结果的示例图如下:

觉得加进去去另一4个 父布局,意味scrollTo/scrollBy方法还能能都还能能 滑动view的内容,暂且能滑动view四种 。

二. View的最小滑动距离

http://blog.csdn.net/tyk0910/article/details/51669205

大伙一起看一下测试结果:

2.通过scrollTo/scrollBy方法来实现View的滑动

View是Android中所有控件的基类,是四种 界面层的控件的四种 抽象,代表另一4个 控件,常见的获取位置参数的方法有以下四种 :

1.通过改变View的布局参数使得View重新布局从而实现滑动

可通过以上方法获取到你什儿 常量,打印出来大小是8dp。当大伙除理滑动时,还能能利用你什儿 常量来做许多过滤,比如当两次滑动事件的距离小于你什儿 值,大伙就还能能认为不在 达到滑动距离的临界值,有随还能能能认为它们总要 滑动的。曾经做可是是不是更好的用户体验。

3.使用LayoutParams方法动态修改布局参数: