我想在整个应用中更改ProgressBar
的颜色。 Android文档表明,如果我使用的是AppCompat
,则会使用colorAccent
作为进度条的颜色。但它没有在我的应用程序中使用它。这是我的styles.xml
:
<resources>
<!-- Application theme -->
<style name="AppTheme" parent="AppTheme.Base">
</style>
<!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppTheme.Base" parent="Theme.AppCompat">
<item name="android:colorPrimary">@color/colorPrimary</item>
<item name="android:colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="android:colorAccent">@color/colorAccent</item>
<item name="android:windowNoTitle">false</item>
<item name="android:windowActionBar">true</item>
<item name="android:windowActionModeOverlay">true</item>
<item name="android:windowBackground">@color/white</item>
<item name="android:windowFullscreen">false</item>
<item name="android:textCursorDrawable">@null</item>
</style>
<style name="AppTheme.Login" parent="AppTheme.Base">
<item name="android:colorControlNormal">@color/gray</item>
<item name="android:colorControlActivated">@color/colorPrimary</item>
<item name="android:colorControlHighlight">@color/med_gray</item>
<item name="android:statusBarColor">@color/dark_gray</item>
</style>
<style name="AppTheme.Menu" parent="AppTheme.Base">
<item name="android:colorPrimary">@color/black</item>
</style>
<style name="AppTheme.Splash" parent="AppTheme.Base">
<item name="android:statusBarColor">@color/colorPrimaryDark</item>
</style>
<style name="login_button_style">
<item name="android:textSize">@dimen/text_small</item>
<item name="android:textAllCaps">false</item>
</style>
</resources>
答案 0 :(得分:2)
progress
drawable
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="1"
android:toDegrees="360" >
<shape
android:innerRadiusRatio="3"
android:shape="ring"
android:thicknessRatio="15"
android:useLevel="false" >
<size
android:height="48dip"
android:width="48dip" />
<gradient
android:centerColor="@android:color/white"
android:centerY="0.50"
android:endColor="@color/colorYellow"
android:startColor="@color/colorYellow"
android:type="sweep"
android:useLevel="false" />
</shape>
</rotate>
progress
使用此progressbar
的颜色
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_gravity="center"
android:layout_centerVertical="true"
android:indeterminateDrawable="@drawable/progress" >
</ProgressBar>
答案 1 :(得分:2)
如果@RuslanMatveev作为评论提出的建议不起作用,您可以尝试以下方法。
<style name="MyProgressBar" parent="@style/Widget.AppCompat.ProgressBar">
<item name="android:progressBackgroundTint">@color/colorAccent</item>
<item name="android:progressTint">@color/colorAccent</item>
</style>
然后在AppTheme.Base
中设置以下参数<item name="android:progressBarStyleHorizontal">@style/MyProgressBar</item>
或
<item name="android:progressBarStyle">@style/MyProgressBar</item
<强>更新强>
如果上述解决方案更改了进度条的形状,您可以尝试将以下行添加到AppTheme.base
<item name="colorControlActivated">@color/accent</item>