我正在使用樣式中設置的透明窗口背景進行自定義對話框。我在對話框後面的另一個按鈕中,使用與背景相同的button_selector設置對話框,並且它工作正常,所以我知道問題與樣式有關,更具體地說是windowBackground屬性。帶有透明窗口的Android自定義對話框背景會打破我的按鈕選擇器
有誰知道我怎麼能得到我的自定義對話框的透明窗口背景,但仍然允許我的按鈕選擇器正常工作?
包含圖片的按鈕背景設置爲@ drawable/lightblue1和@ drawable/button_selector時的樣子。
這是我的風格XML
<resources>
<style name="CustomDialogTheme" parent="@android:style/Theme.Dialog">
<item name="android:windowBackground">@color/transparent</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowNoTitle">true</item>
</style>
</resources>
如果我刪除<item name="android:windowBackground">@color/transparent</item>
行,然後我的按鈕選擇正常工作,但我的對話框就是把系統默認的對話框容器內的背景。
這是我的按鈕聲明xml。如果我將@ drawable/button_selector更改爲其中一個實際的png文件,那麼它會正確顯示,但使用選擇器將我的按鈕背景設置爲透明。
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/button_selector"
android:layout_marginBottom="15dp"
android:textSize="35sp"
android:text="@string/btnText1">
</Button>
這是我如何創建從Java的對話框:
Dialog dialog = new Dialog(TimeClock.this, R.style.CustomDialogTheme);
dialog.setContentView(R.layout.tag);
dialog.show();
這裏是button_selector.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/darkblue1" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/darkblue1" /> <!-- focused -->
<item android:drawable="@drawable/lightblue1" /> <!-- default -->
</selector>
編輯:我結束了 「僞造」 我對話了半透明的活動,這樣我可以更好地控制它的外觀。
windowBackground透明也導致button_selector被顯示爲透明。 – FoamyGuy