Android 如何制作精美的透明菜单,如;“共享菜单”;在安卓画廊?
在我的安卓2.2.2设备上,多媒体资料看起来真的很不错。在我自己的应用程序中,我想做的是按下一个按钮,然后显示一个如下所示的菜单: 这是否使用标准的Android主题/样式?有人知道这样一个菜单的示例代码吗 编辑: 我发现人们可以用一个对话框来模拟这个菜单。为了简化,在本例中,我没有使用ListView,只使用一个用于对话框的TextView条目:Android 如何制作精美的透明菜单,如;“共享菜单”;在安卓画廊?,android,coding-style,menu,transparent,Android,Coding Style,Menu,Transparent,在我的安卓2.2.2设备上,多媒体资料看起来真的很不错。在我自己的应用程序中,我想做的是按下一个按钮,然后显示一个如下所示的菜单: 这是否使用标准的Android主题/样式?有人知道这样一个菜单的示例代码吗 编辑: 我发现人们可以用一个对话框来模拟这个菜单。为了简化,在本例中,我没有使用ListView,只使用一个用于对话框的TextView条目: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/androi
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_root"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textColor="#FFF"
android:padding="10dp"
/>
</LinearLayout>
这将创建一个靠近图片中菜单的对话框。然而,我仍然有两个问题:
1) 我怎样才能在对话框底部画出这个小三角形,就像上图一样
2)要打开对话框的按钮水平放置在底部按钮条的中间。所以当我按下它时,对话框应该显示在按钮的正上方。 我想做的是:
WMLP.x = middleButton.getLeft() + (middleButton.getWidth() / 2) - dialog.getWindow().getDecorView().getPaddingLeft() - (WMLP.width / 2);
问题是,WMLP.width是-2。我猜原因是版面宽度设置为“wrap_content”(即-2),而实际宽度目前还不知道。
那么,如何确定对话框的宽度,以便将其放置在另一个视图的同心位置
更新:我终于找到了这样一个对话框的好来源:
这正是我想要的,我现在正在我的应用程序中使用它。关于对话框
3种选择:
免费提示:使用view.getLocationOnScreen代替view.getLeft(返回到其父对象的距离),这是一个更好的选择。这可能是,或者至少可以通过使用构造来实现。与之相结合,您可以构建自己的“对话框”控件。使用相同的路径,可以定义图形的剪裁区域。最后,您可以使用透明颜色填充画布。您可以通过在当前位置添加弹出窗口来完成此操作,要绘制此酷菜单,您还需要绘制此背景的图像和小箭头 此外,您还应该阅读有关九条路径的绘图,以完成此任务
PS:我已经完成了,但是有另一张图片。和@vikas的可能重复,因为这是你发现的第一个问题的不同问题。这将是第二个问题的重复,但目前为止还没有一个好的答案。但是你能把箭头的尖端放在你想要的特定点上吗?注意,在截图中,箭头不在正方形的中间!是的,锚组件的位置。您需要进行两次绘制,首先绘制矩形,然后绘制指定位置的箭头。
WMLP.x = middleButton.getLeft() + (middleButton.getWidth() / 2) - dialog.getWindow().getDecorView().getPaddingLeft() - (WMLP.width / 2);