View

作者: 魂之挽歌w | 来源:发表于2017-12-17 15:47 被阅读10次

1.1基础概念:

View是界面层控件的一种抽象,它代表了一个控件。ViewGroup也是继承View,这意味着View本身就可以是一个控件或者一组控件的集合。

1.2 View的位置参数

left ,top ,right,bottom

分别由getleft,gettop,getright,getbottom()方法获得,这是相对于父控件的位置!

Android3.0后,加入了x,y,transitionX,transitionY四个属性,分别表示view左上角的坐标和左上角相对于父控件的偏移量(这四个属性也是相对于父控件的),

x=left+transitionX;

y=top+transitionY

transitionX和transitionY默认是0,需要注意的是:在view发生平移时,top和left等值是不发生改变的,永远是最初时相对于父控件左上角的距离,transitionX和transitionY改变带动x,y的变化。

Tips:

getX() \ getY() 获取被点击 View 的 x 坐标和 y 坐标

getRawX() \ getRawY() 获取相对于手机屏幕的 x 和 y 坐标


1.3MotionEvent和TouchSlop

当我们点击屏幕是发生的一系列事件分别是ActionDown,ActionMove,ActionUp,

TouchSlop是指系统能识别的被认为是滑动的最小距离。这是一个常量,和设备相关,不同的设备可能会不同。

GestureDetector

手势监听

1.GestureDetector mDetector=new GestureDetector();

mDetector.setIsLongPressedEnable(false)//解决长按屏幕后无法拖动的情况

2、接管view的OnTouch()方法

在其中加入boolean    consum=mDetector.onTouchEvent(event);

return   consum;

1.4Scroller

弹性滑动对象,用于实现view的弹性滑动。我们都知道View的ScrollTo/ScrollBy方法是实现的瞬间移动,没有过渡的滑动体现,用户体验不好,并且滑动只能滑动view的内容,本身位置 不变

而Scroller实现弹性滑动要配合View的ComputeScroll方法!

相关文章

网友评论

      本文标题:View

      本文链接:https://www.haomeiwen.com/subject/vowywxtx.html