我正在为Android创建一个小游戏。目前,我只是在创建菜单屏幕的用户界面。
由于我正在使用木制主题,我还想使用自定义对话框来显示高分等内容,以便它符合主题。
我找到了一些很好的指南,但是我遇到了一个非常奇怪的问题,即对话框的背景几乎透明。
我已经完成的工作: - 创建了一个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
希望有人能想出为什么会发生这种情况,并提供解决方法 - 老实说我完全迷失了。
android:layout_width="wrap_content"
,它们将会被拉伸到其完整大小。 - silleknarf