安卓对话框阴影?

3
我想请教如何在安卓对话框上添加阴影?是否有方法可以做到这一点?因为目前我的对话框是平面的,没有阴影样式。希望有人能帮助我。

enter image description here

这是我的activity_dialog.xml文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    tools:context="com.bloxofcode.toggle.MainActivity">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:background="@color/colorHeaderDialog"
        android:textColor="@android:color/white"
        android:text="@string/select_gender"
        android:paddingLeft="5dp"
        android:paddingTop="15dp"
        android:paddingBottom="15dp"
        android:gravity="center_horizontal|left"/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="5dp">
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="15sp"
            android:hint="@string/hint_name"
            android:id="@+id/editText"
            android:paddingLeft="10dp" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <ToggleButton
                android:text="ToggleButton"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:id="@+id/toggleButtonMale"
                android:textOn=""
                android:textOff=""
                android:focusable="false"
                android:background="@drawable/check_male"
                android:layout_weight="1" />

            <ToggleButton
                android:text="ToggleButton"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:id="@+id/toggleButtonFemale"
                android:textOn=""
                android:textOff=""
                android:focusable="false"
                android:background="@drawable/check_male"
                android:layout_weight="1" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:paddingTop="5dp">
            <Button
                android:id="@+id/btnCancel"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Cancel"
                android:textSize="10dp"
                android:padding="15dp"
                android:textColor="@android:color/white"
                android:layout_weight="1"/>
            <Button
                android:id="@+id/btnAccept"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Accept"
                android:textSize="10dp"
                android:padding="15dp"
                android:background="@color/colorDialogOK"
                android:textColor="@android:color/white"
                android:layout_weight="1"/>
        </LinearLayout>
    </LinearLayout>

</LinearLayout>

当前的 API 版本是什么? - Jayanth
展示AlertDialog代码。 - Jayanth
2个回答

1
尝试一下:

定义新主题

 <style name="dialog_theme">
 ...
 <item name="android:windowBackground">@android:drawable/abc_menu_dropdown_panel_holo_light</item>
 ...
 </style>

然后将此主题分配给您的对话框:
Dialog dialog = new Dialog(this, R.style.dialog_theme);

如果那个可绘制对象不起作用,请尝试这个:
android:background="@android:drawable/dialog_holo_light_frame"

希望这个能正常工作。

您好,感谢您的回复。但是我该如何获得abc_menu_dropdown_panel_holo_light呢?它是内置在Android中的吗?还是需要在像Photoshop这样的图像编辑器中创建它?另外,对于第二个选项,我应该将其插入到哪里呢?非常感谢您的耐心解答。 - iamcoder
这些是Android默认的可绘制对象,它们可能因版本而异,您应该使用Android前缀来引用它们。请查看此链接:https://dev59.com/qnA75IYBdhLWcg3wm6ax - Mr.Q

0
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:background="@android:drawable/dialog_holo_light_frame"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.bloxofcode.teststyle.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
</RelativeLayout>

@NPE 您好,我这样实现是正确的吗? - iamcoder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接