gpt4 book ai didi

Android:以编程方式获取桌面上小部件相对于其他小部件的位置

转载 作者:太空宇宙 更新时间:2023-11-03 13:05:35 25 4
gpt4 key购买 nike

在 Android 上,用户可以将一个小部件放在桌面上,然后通过长按并在按住时移动手指来移动它。

是否可以通过长按编程获取小部件在屏幕上移动的位置?

我需要我的桌面小部件知道它是否靠近设备屏幕的边缘。根据它是在桌面顶部还是底部,将为小部件选择不同的布局。

我希望这个位置不是以像素为单位给出的,而是作为一对基于 0 的索引给出的。例如。如果设备可以在桌面上显示 4x7 单元格,则右下角的小部件应具有坐标 (3, 6)。此外,应该可以通过某种方式询问设备有多少单元格适合屏幕。

还是我误会了什么?

最佳答案

在 Android 2.1 及更高版本上,对于某些选定的主屏幕,您可以通过 getSourceBounds() 找到应用程序小部件所在的位置——此值附加到任何 Intent 您通过 setOnClickPendingIntent() 通过 PendingIntent 生成。

但是:

  • 这仅适用于 Android 2.1 及更新版本
  • 并非所有主屏幕都可以这样做,因为这是 Launcher 代码 IIRC 的一部分
  • 坐标以像素为单位 IIRC
  • 没有任何其他方式可以查询主屏幕以找出此信息,因为没有与主屏幕交互的 API

因此,我认为您的既定目标(“取决于它是在桌面顶部还是底部,将为小部件选择不同的布局”)是不可能的,我认为。

关于Android:以编程方式获取桌面上小部件相对于其他小部件的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5324602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com