Установка «тусклого» цвета для диалога - PullRequest
4 голосов
/ 08 июня 2011

Я понимаю, как установить тусклое количество для диалога.Однако я бы предпочел, чтобы цвет был полупрозрачным белым, а не полупрозрачным черным (или это темно-серый?).Есть идеи?

1 Ответ

4 голосов
/ 08 июня 2011

Во-первых, вам нужно создать 9-патч белого цвета.Похоже на panel_background.9.png drawable (черный), который можно найти по пути:

 <android-sdk-dir>/platforms/android-#/data/res/drawable-hdpi/panel_background.9.png

Предположим, что ваш drawable будет называться white_panel_background.9.png.


Вариант 1.

Вы можете создать свою пользовательскую тему, которая расширяет Theme.Dialog и переопределяет атрибут windowBackground с помощью настраиваемого белого 9-патча для рисования.

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

И затем используйте эту тему в своем диалоговом окне:

Dialog dialog = Dialog(context, R.style.Theme_WhiteDialog);

Вариант 2.

Если вы ужеСоздав диалоговое окно (с темой по умолчанию), вы все равно можете обновить его фон окна:

Dialog dialog = ...;
...
Resources res = getResources();
Drawable drawable = res.getDrawable(R.drawable.white_panel_background);
dialog.getWindow().setBackgroundDrawable(drawable);

Примечание : вам нужно изменить цвет текста с белого на черный (поэтому он виден на белом фоне).
Примечание : вам нужно будет сделать несколько дополнительных шагов для AlertDialog, так как он использует свои собственные стили для фона.Для получения более подробной информации см. AlertDialog стиль .


enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...