我有一个很好的对话框视图,我将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
的班级。它将其内容视图设置为上述布局。
我想我正在做这件事,只是不确定如何添加这种风格,所以我不能淡化背景。
次要问题:您是否可以使用主题在对话框中获得新的外观(通过显示带有文字的图像或图标)?
答案 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">