在后台不褪色的情况下调用android对话框

在后台不褪色的情况下调用android对话框,android,dialog,views,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.c

我有一个很好的对话框视图,我将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 >

0
但不知道如何将其应用于我的对话框?我有一个名为
的公共类UserInputDialog extends Dialog实现OnClickListener
。它将其内容视图设置为上述布局

我想我做得很好,只是不知道如何添加这种风格,这样我就不会褪色的背景


第二个问题:通过使用主题,您能否在对话框中获得新的外观(比如,在对话框中显示文本的图像或图标)?

创建一个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">

您还可以通过以下代码消除昏暗效果:

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

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

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

要显示类似于TrueCaller的对话框,请执行以下操作:

<activity android:name=".SampleActivity" android:theme="@style/myBackgroundStyle">
style.xml
文件中

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

这会使我从该活动调用的每个对话框使用相同的样式吗?实际上,这是活动的样式设置,意味着该活动永远不会变暗。与对话框无关。由于api 3这更简洁明了,应该是公认的答案。非常有帮助。谢谢:)太好了!而
dialog.getWindow().setDimAmount(0.1f)
会有轻微的变暗。值应在[0.0f,1.0f]范围内。请记住在对话框可用后执行此操作。我在奥纳塔克试过,但没用。在onViewCreated中,它起作用了:)
<activity android:name=".SampleActivity" android:theme="@style/myBackgroundStyle">