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

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

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

我需要我的桌面小部件,以了解它是否在设备屏幕边缘附近.根据它是位于桌面的顶部还是底部,将为小部件选择不同的布局.

我希望这个位置不是以像素为单位,而是以基于0的索引对的形式给出.例如.如果设备可以在桌面上显示4×7的单元格,则右下角的小部件应具有坐标(3,6).同样应该可以以某种方式询问设备屏幕中可以容纳多少个单元格.

还是我误会了什么?

解决方法:

在Android 2.1及更高版本上,通过一些选择的主屏幕,您可以找到通过getSourceBounds()单击时应用程序小部件所在的位置-该值将附加到您通过setonClickPendingIntent()通过PendingIntent生成的任何Intent.

然而:

>这仅适用于Android 2.1及更高版本
>并非所有主屏幕都可以执行此操作,因为这是Launcher代码IIRC的一部分
>坐标以像素IIRC为单位
>由于没有API与主屏幕进行交互,因此无法以任何其他方式查询主屏幕以查找此信息.

因此,我认为您提出的目标是不可能的(“取决于它是位于桌面的顶部还是底部的小部件的不同布局”).

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...