Как изменить цвет ProgressDialog

У меня есть ProgressDialog, который выглядит так на Galaxy Tab 10.1"
введите здесь описание изображения

и так на Galaxy Tab 7"
введите здесь описание изображения

Я хочу, чтобы оба диалоговых окна выглядели одинаково:
Самое близкое, что я получаю, это использование следующего стиля

<style name="popupStyle" parent="android:Theme.Dialog">
<item name="android:textColor">#FFFFFFFF</item>
<item name="android:background">#FF000000</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>

что приводит к этому введите здесь описание изображения

Итак, мои вопросы:
– Как удалить рамку вокруг заголовка «Пожалуйста, подождите»?
– Как изменить общую рамку с синей на белую?
– Как настроить/уменьшить ширина?


person Marc Van Daele    schedule 03.01.2012    source источник


Ответы (2)


Эта статья может дать вам несколько советов по стилю диалогов. и они будут выглядеть одинаково на обеих мишенях.

person Diego Torres Milano    schedule 03.01.2012
comment
Это была интересная статья. Однако я применил другой ColorFilter, чтобы все было в градациях серого. - person Marc Van Daele; 04.01.2012
comment
разместите здесь некоторый код, так как ответы только по ссылке обесцениваются на SO. - person Maveňツ; 28.12.2016

progressDialog = new ProgressDialog(context):    
progressDialog.show();  
TextView tv1 = (TextView) progressDialog.findViewById(android.R.id.message);  
tv1.setTextSize(20);  
tv1.setTypeface(yourCustomTF);  
tv1.setText("your msg");  

Делая это таким образом, вы можете изменить текст сообщения, а также настроить весь вид, получая их компоненты из показанного ProgressDialog. Помните, что вы можете получить идентификатор представления, используя findViewById() после progressDialog.show(), потому что представление генерируется после show().

person Anand Tiwari    schedule 03.01.2012
comment
Мне еще не удалось избавиться от синего фона, используя ваше предложение, хотя я думаю, что это возможно. Это, вероятно, более чистое решение, чем принятое решение, если бы я мог заставить его работать. - person Marc Van Daele; 04.01.2012
comment
Он генерирует исключение NullPointerException в tv1.setTextSize(20);. Он не получает viewbyid после создания шоу. - person lifemoveson; 16.05.2012
comment
на моем конце он работает, здесь «android.R.id.message» - это идентификатор TextView, платформа Android, используемая для отображения диалогового окна сообщения о ходе выполнения. вам следует изучить класс ProgressDialog для лучшего понимания. если вы не используете progressDialog.show(); перед получением tv1 из progressDialog, тогда tv1 будет исключением нулевого указателя. - person Anand Tiwari; 17.05.2012
comment
Этот пост старый, но знаете ли вы способ сделать то же самое, но получить текстовое представление заголовка? Каким тогда будет идентификатор ресурса? Я пробовал с android.R.id.title, но не работает. Есть ли место, где я могу найти этот список? - person Burakito; 10.02.2017
comment
@Burakito, да Ответ слишком старый, после этого произошло много изменений, и полезность вышеизложенного зависит от того, но вы можете найти свой собственный путь, перейдите по ссылке здесь для кода src класса в Android L grepcode.com/file/repository.grepcode.com/java/ext/ - person Anand Tiwari; 10.02.2017