我想创建一些像Android 4.4中所示的“对话框”,例如,当您第一次显示沉浸式模式时。小箭头对我来说很重要,因为我想在屏幕上的不同位置进行对话。
这就是我所说的:
我是否需要创建自定义AlertDialog
?如何移动它,我可以使用视图的坐标吗?我真的不知道从哪里开始。有没有关于创建此类事物的示例?我对使用ShowcaseView
库不感兴趣,因为我认为它具有“旧”全息图。
答案 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的解释。大多数动态位置变化应该与我想的相同