我正在为 Android 创建一个小游戏。目前我只是为菜单屏幕创建 UI。
当我在做一个木制主题时,我还想使用一个自定义对话框来显示高分等,以便它遵循主题。
我找到了一些很好的指南,但是我在对话框的背景上遇到了这个非常奇怪的问题。对话框几乎是透明的。
我做了什么: - 创建了一个 dialog_theme.xml :
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Dialog" parent="android:Theme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
</resources>
- 使用我需要的元素创建了 custom_dialog.xml(标题和内容的 TextView,以及关闭按钮)
- 创建了一个扩展 Dialog 的 CustomDialog 类,让我可以使用我想要的内容和标题轻松构建这些自定义对话框
- 在活动中使用 CustomDialog 创建对话框
(我用于此 blog.androgames.net/10/custom-android-dialog/ 的主要指南)
问题是透明背景并不总是透明的(在背景中显示活动 ui)。我在这个菜单中有 4 个自定义按钮。问题在于,不是只显示对话框透明并在背景中显示整个 ui,而是拉伸按钮的图像之一并填充整个对话框背景。如果我只是为这个按钮使用标准背景,那么对话框背景是透明的,并在后台显示活动 ui。
因为我可能不善于解释,所以我将展示我的意思的图片: - 导致问题的按钮的代码:
<Button
android:id="@+id/id_about_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@+id/id_achievements_button"
android:layout_marginTop="15dp"
android:background="@drawable/selector_about" />
给出了这个结果:(对不起,我还不能直接在帖子中使用图片) http://dl.dropbox.com/u/2980431/wrong.png
修改按钮代码为:
<Button
android:id="@+id/id_about_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@+id/id_achievements_button"
android:layout_marginTop="15dp"/>
给出这个结果: http ://dl.dropbox.com/u/2980431/correct.png
希望有人知道为什么会发生这种情况,以及解决它的解决方案 - 老实说,我完全迷失了。