Android 视图座标系

1. 屏幕座标系区域划分

先看看 android 的屏幕规划图。 可以很明显的看出来, 屏幕的区域划分作用在某一个位置。
在这里插入图片描述

android 由左上角顶点位置起始座标,横向X轴开始, 往右正座标, 竖向Y轴开始, 往下正座标。
在这里插入图片描述

获取当前屏幕状态信息 APIS

// 获取当前屏幕的宽/高。 分辨率
DisplayMetrics displayMetrics = new DisplayMetrics();
Activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
// 屏幕宽/高状态信息
displayMetrics.widthPixels;
displayMetrics.heightPixels;
// 获取当前状态栏的高度
方式一:
Rect rect = new Rect();
// 获取当前APP的绘制区域, 看上图,包含ActionBar和View的绘制布局区域
getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
rect.top

方式二:
如果当前屏幕隐藏了状态栏的显示, 并且还需要获取状态栏的高度时, 可以通过反射系统的高度属性进行获取
int result = 0;
int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
    result = context.getResources().getDimensionPixelSize(resourceId);
}

获取View的座标系APIS

自定义View时, 需要详细知道view在当前屏幕上摆放的位置。 可以通过下列api获取到当前的绝对座标和相对座标系
在这里插入图片描述
通过上图可以很清楚的认知到view方法的总结。

View 的方法 备注
getLeft() 当前View的左边距离父容器的左边距离
getTop() 当前View的上边距离父容器的上边距离
getRight() 当前View的右边距离父容器的右边距离
getBottom() 当前View的下边距离父容器的下边距离
getX() 返回getLeft()+getTranslationX()方法的总和, 当不修改translationX的值时,与getLeft()返回值相同
getY() 返回getTop()+getTranslationY()方法的总和, 当不修改translationY的值时,与geTop()返回值相同
getTranslationX() 水平移动的长度。 通常与动画相互使用
getTranslationY() 垂直移动的长度。 通常与动画相互使用

针对触摸时, 获取的视图座标大小 MotionEvent

MotionEvent 的方法 备注
getX() 获取当前触摸点, 距离当前View的左边间距
getY() 获取当前触摸点, 距离当前View的上边间距
getRawX() 当前触摸点, 距离整体屏幕的X轴座标
getRawY() 当前触摸点, 距离整体屏幕的Y轴座标

获取 View 的显示座标区域

View 的方法 备注
getLocalVisibleRect() 获取当前View位置的显示座标,当前 view 以自己的左上角为起点,另一个点是在自己view的右下角, 返回的X,Y轴座标, 都是相对当前自身View。
getGlobalVisibleRect() 获取当前View位置的显示座标, 当前 View 以屏幕的左上角为起点, 另一个点是自己View的右下角, 返回的X,Y座标。

View 的滑动座标系

View的滑动方法 效果及描述
offsetLeftAndRight(int offset) 横向座标滑动, 会改变当前view的真实位置。
offsetTopAndBottom(int offset) 竖向座标滑动, 会改变当前view的真实位置。
scrollBy(int x, int y) 针对传入的X轴和Y轴进行滑动,X负值为在当前位置往左滑, 反之亦然 参数Y与X表述相同, 仅仅只会滑动view里面的内容, 不会真实改变view的位置, 一般用在viewgroup较多
scrollTo(int x, int y) 针对传入的X轴和Y轴进行滑动, 滑动位置是传入参数的父布局座标, 与当前ParentView为参照物。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章