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  函数中进行, 否则得到的某些数据可能是错误的,比如,应用区域高宽的获取。


  • 2020-12-29 14:33:00

    php降级处理yum如何降级

    现在我以php7.4降级到php7.2说起,当然降级是各有各的苦衷,不然谁闲的没事去降级呀,请说出的苦衷。。。。

  • 2020-12-29 14:35:12

    git 放弃所有修改

    此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除。但是此命令不会删除掉刚新建的文件。因为刚新建的文件还没已有加入到 git 的管理系统中。所以对于git是未知的。自己手动删除就好了。

  • 2020-12-29 16:20:29

    使用console进行 性能测试 和 计算代码运行时间

    对于前端开发人员,在开发过程中经常需要监控某些表达式或变量的值,如果使用用 debugger 会显得过于笨重,最常用的方法是会将值输出到控制台上方便调试。 最常用的语句就是console.log(expression)了。

  • 2021-01-05 15:41:42

    nodejs修改时区

    ​let date = new Date(); date.setHours(date.getHours() + 8);