在没有它的情况下调用android对话框淡化背景

时间:2010-06-24 20:57:11

标签: android dialog views

我有一个很好的对话框视图,我将UserInputDialog类设置为:

    <LinearLayout android:id="@+id/LinearLayout01" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">

        <TextView
        android:id="@+id/nameMessage"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="What is your name Captain?"
        >
        </TextView>
        <EditText
        android:id="@+id/nameEditText"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        >
        </EditText>
    <LinearLayout android:id="@+id/LinearLayout02" android:layout_width="fill_parent" android:layout_height="wrap_content" 
        android:layout_gravity="center_horizontal">
    <Button
        android:id="@+id/okButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="OK">
        </Button>
        <Button android:id="@+id/cancelButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Cancel">
        </Button>               
    </LinearLayout>
</LinearLayout>

我希望我的对话框显示但背景不会淡出。这可能吗?导致调用此对话框的视图具有neato背景,我希望将其显示为对话框的背景。

我在网上找到了这个:

<style name="doNotDim" parent="@android:style/Theme.Dialog">
    <item name="android:backgroundDimAmount">0</item>
</style >

但不确定如何将其应用到我的对话框中?我有一个名为public class UserInputDialog extends Dialog implements OnClickListener的班级。它将其内容视图设置为上述布局。

我想我正在做这件事,只是不确定如何添加这种风格,所以我不能淡化背景。

次要问题:您是否可以使用主题在对话框中获得新的外观(通过显示带有文字的图像或图标)?

4 个答案:

答案 0 :(得分:162)

您还可以使用以下代码删除代码的暗淡效果:

dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);

答案 1 :(得分:32)

创建res / values / styles.xml文件并将其添加到其中。

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="Theme.DoNotDim" parent="android:Theme">
    <item name="android:backgroundDimEnabled">false</item>
  </style>
</resources>

并将主题应用于您的活动。

<activity android:name=".SampleActivity" android:theme="@style/Theme.DoNotDim">

答案 2 :(得分:5)

创建自定义样式并将其放在值文件夹

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="YourCustomStyle" parent="android:Theme">
    <item name="android:backgroundDimEnabled">false</item>
  </style>
</resources> 

要将样式设置为单个对话框,您可以使用

Dialog dialog = new Dialog(context, R.style.YourCustomStyle);

答案 3 :(得分:1)

要显示 TrueCaller 等对话框,请执行以下操作:

styles.xml档案中。

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="myBackgroundStyle" parent="android:Theme.Dialog">
    <item name="android:backgroundDimEnabled">false</item>
  </style>
</resources>

AndroidManifest.xml执行此操作:

<activity android:name=".SampleActivity" android:theme="@style/myBackgroundStyle">