“创建蓝色”;教程“;Android 4.4中的对话框

“创建蓝色”;教程“;Android 4.4中的对话框,android,android-view,android-alertdialog,android-dialog,Android,Android View,Android Alertdialog,Android Dialog,我想创建一些类似于Android 4.4中显示的“对话框”,例如,当您第一次以沉浸式模式显示时。小箭头对我来说很重要,因为我希望对话框在屏幕上的不同位置 这就是我要说的: 是否需要创建自定义的警报对话框?如何移动它,我可以使用视图的坐标吗?我真的不知道从哪里开始。有没有关于创造这种东西的例子?我对使用ShowcaseView不感兴趣,因为我认为它具有“旧”全息外观。您可以使用getLocationOnScreen()获取视图坐标,确保在视图膨胀后调用它(因此,不是在活动的onCreate()中)

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

这就是我要说的:


是否需要创建自定义的
警报对话框
?如何移动它,我可以使用视图的坐标吗?我真的不知道从哪里开始。有没有关于创造这种东西的例子?我对使用ShowcaseView不感兴趣,因为我认为它具有“旧”全息外观。

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

您可能应该创建自己的。合并您自己的自定义布局,其中包含小气泡和按钮。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个面片图像的变化作为小气泡的背景。另一种选择是将箭头和气泡放在同一个容器中,并将它们之间的边距/填充设置为0。由于您具有坐标,因此可以相应地调整箭头的水平边距。这实际上是一个很酷的想法,我想我会在这个周末尝试我自己的解释


实际上,我一直在对showcase库进行自己的解释。大部分动态位置变化应该是相同的,我想这是否意味着每次需要移动“框”时,我都需要创建一个新的
DialogFragment
。或者这与普通的
片段
完全一样吗?如果您愿意,您可以这样构造它。
DialogFragment
实际上只是
Fragment
类中的一个对话框如果你不介意我问一下,哪些应用程序已经嵌入了这种教程风格?如果有一个真正的示例可以使用,那就太酷了。实际上,我还没有找到任何具有这种风格的完整教程的应用程序。我希望实现与ShowcaseView库相同的效果,但采用较新的样式。这是一个使用ShowcaseView的应用程序:您是否尝试过清除Google搜索应用程序数据,因为大部分代码都是针对启动器的,而不是针对GEL apk的。