Изменить цвет оконной рамы - PullRequest
4 голосов
/ 07 января 2010

Как мне изменить цвет рамки этого диалога? Я перепробовал кучу вещей и ничего не работает.

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="CustomDialogTheme" parent="@android:style/Theme.Dialog">               
    <item name="android:windowNoTitle">true</item>
  </style>
</resources>

Ответы [ 2 ]

11 голосов
/ 07 января 2010

Вы имеете в виду белую рамку? Я думаю, что это часть прорисовки из 9 патчей, вы можете посмотреть, как Theme.Dialog собирается в SDK_FOLDER \ platform \ android-sdkversion \ data \ res \ values а затем styles.xml и themes.xml

Как я уже сказал, белая рамка является частью фонового изображения. its panel_background.9.png Так что если вы хотите изменить фрейм - вам понадобится другое фоновое изображение + нужно перезаписать его в настройке стиля.

 <item name="android:windowBackground">@android:drawable/panel_background</item> 

и вам нужно определить стиль, который будет производным от Theme.Dialog, и иметь этот

<item name="android:windowBackground">@drawable/your_drawable</item> 

так что если вы поместите в styles.xml что-то вроде

<style name="NewBorderDialogTheme" parent="android:Theme.Dialog">
 <item name="android:windowBackground">@drawable/your_drawable</item> 
</style>

Поместите новый объект рисования и настройте свою активность на новую тему - вы должны увидеть новую границу

0 голосов
/ 11 февраля 2016

Если вы хотите сделать это программно, попробуйте следующий код:

Что нужно сделать:

Когда на вашем экране отображается AlertDialog, вызывается OnShowListener. Таким образом, добавив dialog.setOnShowListener(this), вы сможете настроить AlertDialog.

Код:

// Create AlertDialog
AlertDialog.Builder adb = new AlertDialog.Builder(context1);
    adb.setTitle(context1.getString(R.string.app_name))
    .setMessage(message)
    .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {

        }
});
AlertDialog dialog = adb.create();

// Make some UI changes for AlertDialog
dialog.setOnShowListener(new DialogInterface.OnShowListener() {
    @Override
    public void onShow(final DialogInterface dialog) {

        // Add or create your own background drawable for AlertDialog window
        Window view = ((AlertDialog)dialog).getWindow();
        view.setBackgroundDrawableResource(R.drawable.your_drawable);

        // Customize POSITIVE, NEGATIVE and NEUTRAL buttons.
        Button positiveButton = ((AlertDialog)dialog).getButton(DialogInterface.BUTTON_POSITIVE);
        positiveButton.setTextColor(context1.getResources().getColor(R.color.primaryColor));
        positiveButton.setTypeface(Typeface.DEFAULT_BOLD);
        positiveButton.invalidate();

        Button negativeButton = ((AlertDialog)dialog).getButton(DialogInterface.BUTTON_NEGATIVE);
        negativeButton.setTextColor(context1.getResources().getColor(R.color.primaryColor));
        negativeButton.setTypeface(Typeface.DEFAULT_BOLD);
        negativeButton.invalidate();

        Button neutralButton = ((AlertDialog)dialog).getButton(DialogInterface.BUTTON_NEUTRAL);
        neutralButton.setTextColor(context1.getResources().getColor(R.color.primaryColor));
        neutralButton.setTypeface(Typeface.DEFAULT_BOLD);
        neutralButton.invalidate();
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...