我将我的iOS应用移植到Android。它是一个音乐播放器,我有一个窗口显示在应用程序主屏幕的顶部,它会逐渐消失 - 类似于Toast,让用户知道有关该轨道的信息。
这个窗口的特别之处在于它是半透明的。它允许用户点击它后面的按钮,所以它不是一个对话框。
如何在Android中实现此类窗口?假设我有一个带有许多按钮的MainActivity,我希望产生这种特殊的窗口。它只是一个不可调焦的视图吗?或者我应该尝试创建自定义Toast?
答案 0 :(得分:1)
没有任何组件可以让您触摸下方,但您可以在RelativeLayout
内创建一个布局,它支持z轴上的多个布局,这样您就可以触摸它下方的按钮。
您可以尝试此示例并测试:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/parent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:clipChildren="true" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/countdown"
android:layout_marginBottom="24dp"
android:layout_toRightOf="@+id/countdown"
android:text="Button" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button1"
android:layout_below="@+id/button1"
android:layout_marginLeft="43dp"
android:layout_marginTop="97dp"
android:text="Button" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button2"
android:layout_alignBottom="@+id/button2"
android:layout_toLeftOf="@+id/button2"
android:text="Button" />
<Button
android:id="@+id/button6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button3"
android:layout_alignParentBottom="true"
android:layout_marginBottom="99dp"
android:text="Button" />
<Button
android:id="@+id/button9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/button7"
android:layout_marginBottom="15dp"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/button8"
android:text="Button" />
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button4"
android:layout_alignBottom="@+id/button4"
android:layout_toLeftOf="@+id/button9"
android:text="Button" />
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/button1"
android:layout_marginLeft="12dp"
android:layout_marginTop="13dp"
android:text="Button" />
<Button
android:id="@+id/button8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button7"
android:layout_alignTop="@+id/button2"
android:layout_marginLeft="41dp"
android:layout_marginTop="25dp"
android:text="Button" />
<Button
android:id="@+id/button7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/button6"
android:layout_marginBottom="12dp"
android:layout_marginLeft="16dp"
android:layout_toRightOf="@+id/button2"
android:text="Button" />
<LinearLayout
android:layout_width="300dp"
android:layout_height="400dp"
android:layout_centerInParent="true"
android:background="#96000000"
android:orientation="vertical" >
</LinearLayout>
</RelativeLayout>
结果:
在该图像中,黑色半透明的布局位于按钮的顶部,您可以将其用作半透明对话框。您还可以点击下方的按钮。