像在Android 4.4中一样创建蓝色“教程”对话框

时间:2014-02-28 19:26:46

标签: android android-view android-alertdialog android-dialog

我想创建一些像Android 4.4中所示的“对话框”,例如,当您第一次显示沉浸式模式时。小箭头对我来说很重要,因为我想在屏幕上的不同位置进行对话。

这就是我所说的:enter image description here

我是否需要创建自定义AlertDialog?如何移动它,我可以使用视图的坐标吗?我真的不知道从哪里开始。有没有关于创建此类事物的示例?我对使用ShowcaseView库不感兴趣,因为我认为它具有“旧”全息图。

1 个答案:

答案 0 :(得分:2)

您可以使用getLocationOnScreen()获取视图的坐标,请确保在视图膨胀后调用此方法(因此,不要在您的活动的onCreate()中),否则您将返回默认的int值(即0)。

您应该创建自己的DialogFragment。合并您自己的自定义布局,其中包含小气泡和按钮。 onCreateDialog()的快速和脏样本将具有以下

Dialog dialog = new Dialog(getActivity());
// Get rid of the annoying alert dialog title bar
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
// You must set the content view after requesting window features, not before.
dialog.setContentView(someView);
// Make the dialog full screen
dialog.getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
//Dim the background
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.argb(80, 0, 0, 0)); 

要合并小箭头,您可以尝试将9-patch图像的变体作为小气泡的背景。另一种方法是将箭头和气泡放入同一容器中,并将它们之间的边距/填充设置为0.由于您有坐标,因此可以相应地调整箭头的水平边距。这实际上是一个很酷的主意,我想我会在本周末尝试自己解释它。

我实际上一直在研究自己对展示库Here is what i achieved的解释。大多数动态位置变化应该与我想的相同