如何设置进度条的默认颜色

时间:2017-12-13 17:57:06

标签: android progress-bar

我想在整个应用中更改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>

2 个答案:

答案 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>