我希望能制作出类似于Facebook应用程序中带有指向标记的弹出对话框。 以下是应该看起来的样子。 http://imageshack.us/photo/my-images/9/facebookandroid.png/ 如果您了解相关技术,请提供帮助。提前感谢您的帮助。
有多种策略可以解决这个问题,但每个解决方案都必须处理对话框顶部三角形/指针的位置,因为它必须定位以指示用户的选择。我认为解决此问题最简单的方法是: 启动具有透明主题的活动。 因此,在清单中将类似android:theme =“@ android:style / Theme.Translucent.NoTitleBar”的内容应用于活动。 如果您想要标题栏,请搜索正确的Android样式。 向活动传递表示用户选择的导航元素的额外信息。 这将由活动用于定位三角形指针。 在活动的onCreate()方法中处理此额外信息,方法是通过代码绘制三角形/指针。 这意味着您将想要在onCreate()中调用setContentView(...),然后获取对ViewGroup(即RelativeLayout,AbsoluteLayout等)的引用。 一旦您拥有了它,就可以调用ViewGroup#addView(View child,int index)来添加表示三角形的ImageView。 您可能想使用index = 0。 确保以编程方式添加的任何视图都不被XML中的元素覆盖(即隐藏)。 添加三角形相对容易,但定位可能会变得棘手。 首先,您发布的屏幕截图假定设备宽度固定,这对于需要在1000多种屏幕尺寸上工作的市场中的Android应用程序来说是不正确的。 三角形/指针的Y坐标不是问题,因为顶部导航栏的高度可能是硬编码的。 它的X坐标可能会变得棘手。 如果顶部导航栏元素拉伸怎么办? 假设我们有一种强大/合理的方法来获取三角形/指针中心应该位于的X位置。 鉴于此,我会尝试在我的Activity中使用垂直LinearLayout,并使用带有左边距的ImageView来表示三角形/指针。 这只是一个猜测,您可能需要调整此内容以获取特定实现的正确视图元素和定位策略。