在屏幕上定位对话框

cod*_*ber 5 android dialog

我有一个MapView活动.我在地图上有覆盖,如果点击它,我想在项目上放置一个悬停对话框.

我已经拥有了自己的自定义对话框,我用自己的布局和自定义背景组成了这个对话框.我唯一的问题是如何告诉Android在哪里(x,y术语)定位对话框.

由于知道对话框x,y是什么,因此更加复杂.我首先需要知道测量后对话框的宽度和高度(因为我需要计算相对于叠加的位置).

use*_*209 11

快速谷歌搜索提出了以下内容:

您可以调用getWindow().getAttributes()来检索窗口的WindowManager.LayoutParams.这包含以下涉及窗口放置的字段:

http://code.google.com/android/reference/android/view/ViewGroup.LayoutParams.html#width http://code.google.com/android/reference/android/view/ViewGroup.LayoutParams.html#height http://code.google.com/android/reference/android/view/WindowManager.LayoutParams.html#gravity http://code.google.com/android/reference/android/view/WindowManager.LayoutParams.html#x http://code.google.com/android/reference/android/view/WindowManager.LayoutParams.html#y

进行所需的更改后,使用getWindow().setAttributes()来安装新值.

请注意,虽然您可以通过宽度和高度字段强制使用特定大小,但通常正确的方法是让窗口执行其正常布局并自动确定窗口大小.如果对话框中有一个想要固定大小的视图,例如300x200,请实现View.onMeasure()以调用setMeasuredDimension(300,200).然后,当视图层次结构布局发生时,对话框窗口将被赋予一个大小,以确保您的视图是该维度(可能使实际窗口更大以考虑对话框框架和装饰).

希望有所帮助.