0

通常のDialogの背景を非常に簡単に変更できたので、特定の背景色をAlertDialogにも割り当てたいと思います。android-17 / styles.xmlから必要な部分(単にサブクラスを参照できなかった部分)を抽出し、ボタンボックスのbgの色を正常に変更しました。

<!--    Extracted from styles.xml for Holo theme   -->

    <style name="AlertButtonBarWithBackground" parent="@android:style/Holo.ButtonBar.AlertDialog">
        <item name="android:background">@color/dialog_background_color</item>        
    </style>

    <style name="AndroidHoloTextAppearance">
        <item name="android:textColor">?android:attr/textColorPrimary</item>
        <item name="android:textColorHighlight">?android:attr/textColorHighlight</item>
        <item name="android:textColorHint">?android:attr/textColorHint</item>
        <item name="android:textColorLink">?android:attr/textColorLink</item>
        <item name="android:textSize">18sp</item>
        <item name="android:textStyle">normal</item>
    </style>

    <style name="AndroidDialogWindowTitle">
        <item name="android:maxLines">1</item>
        <item name="android:scrollHorizontally">true</item>
        <item name="android:textAppearance">@android:style/TextAppearance.DialogWindowTitle</item>
    </style>

    <style name="AndroidDialogWindowTitle.Holo">
        <item name="android:maxLines">1</item>
        <item name="android:scrollHorizontally">true</item>
        <item name="android:textAppearance">@style/AndroidHoloTextAppearance</item>
    </style>

    <style name="AlertDialogTheme" parent="@android:style/Theme.Holo.Dialog">
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowTitleStyle">@style/AndroidDialogWindowTitle.Holo</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item>
        <item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_minor</item>
        <item name="android:buttonBarStyle">@style/AlertButtonBarWithBackground</item>
    </style>

<!--    End of extracted fragment  -->

    <style name="ActivityTheme" parent="android:Theme.Holo">
        <item name="android:alertDialogTheme">@style/AlertDialogTheme</item>
    </style>

ただし、テキスト領域の背景をどのように変更しようとしても、ダイアログの周囲の影の背景も変更されます。これは、bgの色を次のように設定した通常のダイアログには当てはまりません。

@ color / dialog_background_color

それはまだbgの色によって変更されていない素晴らしい標準の影を持っているので、これはアラートダイアログでも実行できると思いますか?..

4

0 に答える 0