我有一个主题相关的活动(在AndroidManifest.xml中)
<activity
android:name=".BenchTestActivity"
android:parentActivityName=".HomeActivity"
android:theme = "@style/AppTheme.CaeTheme">
AppTheme.CaeTheme不包含任何内容(目前),但AppTheme是:
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="android:background">@color/colorPrimary</item>
</style>
(colorPrimary是深蓝色)
现在我在上面提到的活动中定义了progressDialog。
progressDialog = new ProgressDialog(BenchTestActivity.this);
progressDialog.setProgressStyle(R.style.ProgressDialog);
这里是ProgressDialog风格:
<style name="ProgressDialog">
<item name="android:alertDialogStyle">@style/CustomAlertDialogStyle</item>
<item name="android:layout_centerHorizontal">true</item>
<item name="android:layout_centerVertical">true</item>
<item name="android:visibility">gone</item>
</style>
<style name="CustomAlertDialogStyle">
<item name="android:background">@color/colorBackgroundProgressDialog</item>
<item name="android:textColorPrimary">#e6e6e6</item>
</style>
colorBackgroundProgressDialog是浅灰色。我期望获得那种颜色作为我的进度对话框的背景,但这不是它发生的事情(背景颜色是深蓝色,colorPrimary)。因此,活动主题的背景是赢。那么,如何为进度对话框设置自定义颜色?
提前致谢。
答案 0 :(得分:1)
使用accepts theme
as argument的构造函数并传递适当的主题。
ProgressDialog progressDialog = new ProgressDialog(context, R.style.MyProgressDialogTheme);
progressDialog.show();
在styles.xml
:
<style name="MyProgressDialogTheme" parent="ThemeOverlay.AppCompat.Dialog.Alert">
<!-- override attributes here -->
</style>
答案 1 :(得分:0)
<style name="Custom" parent="android:Theme.DeviceDefault.Dialog">
<item name="DialogTitleAppearance">@android:style/TextAppearance.Medium</item>
<item name="DialogTitleText">Loading……</item>
<item name="DialogSpotColor">@android:color/holo_orange_dark</item>
<item name="DialogSpotCount">4</item>
</style>
在你的活动中,java:
SpotsDialog spotsDialog = new SpotsDialog(Context,R.style.Custom);
spotsDialog.show(); //where you want
spotsDialog.dismiss(); //where you want
并添加依赖
compile 'com.github.d-max:spots-dialog:0.7@aar'