我想创建一些像 Android 4.4 中所示的“对话框”,例如当您第一次看到沉浸式模式时。小箭头对我来说很重要,因为我希望对话框出现在屏幕上的不同位置。
这就是我所说的:
我需要创建自定义AlertDialog
吗?我如何移动它,我可以使用 View 的坐标吗?我真的不知道从哪里开始。有创建此类事物的示例吗?我对使用 ShowcaseView
库不感兴趣,因为我认为它具有“旧”全息外观。
最佳答案
您可以使用 getLocationOnScreen()
获取 View 的坐标,请确保在 View 膨胀后调用此方法(因此,不要在 Activity 的 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 block 图像的变体作为小气泡的背景。另一种选择是将箭头和气泡放入同一个容器中,并将它们之间的边距/填充设置为 0。由于您拥有坐标,因此您可以相应地调整箭头的水平边距。这实际上是一个很酷的想法,我想这个周末我会尝试自己的解释。
我实际上一直在致力于我自己对展示库的解释,Here is what i achieved 。我认为大部分动态位置变化应该是相同的
关于android - 像 Android 4.4 一样创建蓝色 "tutorial"对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22104132/