自定义view时一些概念的含义

关于自定义view时一些概念做下简单记录


View.getLeft():子View的左边界到父View的左边界的距离
View.getRight():子View的右边界到父View的左边界的距离
View.getTop():子View的顶部到父View顶部的距离
View.getBottom():子View的底部到父View的顶部的距离
View.getWidth():表示的是当前控件的宽度,即getRight()-getLeft()
View.getHeight():表示的是当前控件的高度,即getBottom()-getTop()
View.getTranslationX()计算的是该View在X轴的偏移量。初始值为0,向左偏移值为负,向右偏移值为正
View.getTranslationY()计算的是该View在Y轴的偏移量。初始值为0,向上偏移为负,向下偏移为证

event.getX():表示的是触摸的点距离自身左边界的距离
event.getY():表示的是触摸的点距离自身上边界的距离
event.getRawX:表示的是触摸点距离屏幕左边界的距离
event.getRawY:表示的是触摸点距离屏幕上边界的距离

scrollTo():scrollTo(int x, int y) 是将View中内容滑动到指定位置,参考的坐标系原点为parent View的左上角(为正时代表右向左或者下向上)

scrollBy():表示的是在view当前的坐标基础上移动的增量dx和dy,如果为负值则移动的是相反方向(为正时代表右向左或者下向上)

getScrollX():调用视图在屏幕左边缘的X坐标减去调用视图原点X坐标

getScrollY():调用视图在屏幕上边缘的Y坐标减去调用视图原点Y坐标

View原点坐标为View初始时的左上角坐标


图解:


此图片和部分描述引用自:(http://blog.csdn.net/znouy/article/details/51338256)

红色的框其实就是我们眼睛看到的手机屏幕,就是一个窗口;而绿色的长方体就是一块可以左右拉动的幕布,也就是我们要显示在窗口上面的内容,它其实是可以很大的,大到无限大,只是没在窗口中间的,所以我们就看不到。

getScrollX 其实获取的值,就是这块幕布在窗口左边界时候的值,而幕布上面哪个点是原点(00)呢?就是初始化时内容显示的位置。

所以当我们将幕布往右推动的时候,幕布在窗口左边界的值就会在0的左边(-100),此时getScrollX 的值就是-100而如果向左推动幕布,则其值会是在0的右边(100,此时getScrollX 的值就是100了。


getScrollY()同理


如果错误欢迎指正。


猜你喜欢

转载自blog.csdn.net/abs625/article/details/76606044