3

我正在为 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

希望有人知道为什么会发生这种情况,以及解决它的解决方案 - 老实说,我完全迷失了。

4

1 回答 1

0

仍然不确定发生了什么。在另一个项目中,我遇到了同样的事情 - 自定义半透明对话框背景,在背景中添加了另一个可绘制对象。重命名在后台显示的错误可绘制对象,然后清理项目为我解决了这个问题。

奇怪的。

于 2012-04-13T05:15:22.053 回答