当前位置: 首页 > 编程笔记 >

android获得当前view在屏幕中坐标的方法

任飞鸣
2023-03-14
本文向大家介绍android获得当前view在屏幕中坐标的方法,包括了android获得当前view在屏幕中坐标的方法的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了android获得当前view在屏幕中坐标的方法。分享给大家供大家参考。具体如下:

final int[] location = new int[2];
view.getLocationOnScreen(location);

这样就可以得到该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起,也就是说包括了通知栏的高度)

//获取在当前屏幕内的绝对坐标
location[0] x坐标
location[1] y坐标

应用 ,我们可以用来记录上一次listview滚动到了那里

首先我们需要一个记录当前滚动位置的全局变量:

private float OldListY = -1;

然后在 listView 的 onItemClick() 或 onItemLongClick() 事件中获取 OldListY:

lstView.setOnItemClickListener(new OnItemClickListener()  
{  
  public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
  {
    int Pos[] = { -1, -1 }; //保存当前坐标的数组
    arg1.getLocationOnScreen(Pos); //获取选中的 Item 在屏幕中的位置,以左上角为原点 (0, 0)
    OldListY = (float) Pos[1]; //我们只取 Y 坐标就行了
  }
});

最后要做的就是在 setAdapter() 后恢复先前的位置:

...  
lstView.setAdapter(adapter); // 重新绑定Adapter
lstView.setSelectionFromTop(index, (int) OldListY); // 恢复刚才的位置

希望本文所述对大家的Android程序设计有所帮助。

 类似资料:
  • 本文向大家介绍java获取鼠标在屏幕上坐标的方法,包括了java获取鼠标在屏幕上坐标的方法的使用技巧和注意事项,需要的朋友参考一下 介绍 java作为目前最为流行的计算机开发语言之一,学习java是高薪就业的好选择,本文介绍的这个小工具主要是使用MouseInfo类实时获取鼠标的信息,然后再JDialog上显示出来。希望下面的内容介绍,能够让大家对于如何获取鼠标在屏幕上的坐标更加了解,一起来学习下

  • 我试图根据用户输入的坐标捕捉区域截图。基本上,用户在屏幕上点击得到x,y坐标,然后在其他地方点击另一对x,y坐标,然后将其放入一个矩形中,并使用机器人库创建屏幕截图。 我有的问题是,我得到了随机截图,这不是用户输入的坐标,我怎么能考虑包括0的坐标,因为矩形值必须超过1。 以下是我迄今为止的代码:

  • 本文向大家介绍javascript获取当前鼠标坐标的方法,包括了javascript获取当前鼠标坐标的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript获取当前鼠标坐标的方法。分享给大家供大家参考。具体实现方法如下: 对于javascript获取当前鼠标坐标来说,得对不同浏览器的坐标位置有所了解。具体代码如下: 希望本文所述对大家的javascript程序设计有所帮助

  • 我有一个小的android问题(谷歌地图v2 api) 这是我的代码: 我试图找到一种方法来获取此标记对象的当前屏幕坐标(x,y)。 也许有人有一个想法?我尝试了getProject,但它看不见工作。谢谢!:)

  • Android将屏幕尺寸定义为普通的大屏幕等。 它会自动选择适当文件夹中的静态资源。我需要这个数据关于当前设备在我的java代码。DisplayMetrics仅提供有关当前设备密度的信息。没有关于屏幕大小可用。 我确实在grep代码中找到了屏幕大小枚举,但是这对我来说似乎不适用于4.0 SDK。有办法得到这些信息吗?

  • 在Android系统中如何获得屏幕的可用高度?我需要的高度减去状态栏/菜单栏或任何其他可能在屏幕上的装饰,我需要它为所有设备工作。另外,我需要在onCreate函数中了解这一点。我知道这个问题以前有人问过,但我已经尝试过他们的解决方案,但没有一个奏效。以下是我尝试过的一些事情: 这还没有考虑状态栏/菜单栏: 我然后用下面的代码从屏幕高度中减去状态栏和菜单栏的高度: 在API17上,它给出了正确计算