Android View的坐标和屏幕高度 getY getX getLett getTop

2021-01-14 06:12:19

参考地址 Android获取View 的坐标和屏幕高度、状态栏高度、标题栏高度


注意事项:

(1)View.getX()和View.getY()获取到的值为相对于父视图而言的两个左边缘和上边缘的距离。

(2)View.getX()和View.getY()值在Activity的onCreate()方法中获取的值很可能为0,因为

此时View很可能没有绘制完成。也不要在此类函数中执行getWidth()和getHeight()方法;


1.获取相对于父ViewGroup的坐标:
getLeft , getTop, getBottom, getRight
2.获取相对于窗口的坐标:
getLocationInWindow


int[] position = new int[2];textview.getLocationInWindow(position);System.out.println("getLocationInWindow:" + position[0] + "," + position[1]);

3.获取相对于屏幕的坐标:


getLocationOnScreen

int[] position = new int[2];textview.getLocationOnScreen(position);System.out.println("getLocationOnScreen:" + position[0] + "," + position[1]);


理解图:


4.获取:屏幕高度、状态栏高度、标题栏高度




屏幕区域的获取:

	activity.getWindowManager().getDefaultDisplay();

         应用区域的获取:


Rect outRect = new Rect();activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(outRect);

        view绘制区域获取:


Rect outRect = new Rect();activity.getWindow().findViewById(Window.ID_ANDROID_CONTENT).getDrawingRect(outRect);


用绘制区域的outRect.top - 应用区域的outRect.top 即是标题栏的高度。

注意: 如果刚启动Activity时就要计算这些数据,最好在 onWindowFocusChanged  函数中进行, 否则得到的某些数据可能是错误的,比如,应用区域高宽的获取。


  • 2019-10-16 21:02:47

    vue中mixins的详细分析一

    混入 (mixins): 是一种分发 Vue 组件中可复用功能的非常灵活的方式。混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项。

  • 2019-10-16 21:04:47

    vue中mixins的详细分析二

    当混合里面包含异步请求函数,而我们又需要在组件中使用异步请求函数的返回值时,我们会取不到此返回值,如下: