【问题标题】:Changing the color of ProgressBar not working in API<21更改 ProgressBar 的颜色在 API<21 中不起作用
【发布时间】:2019-03-11 11:53:32
【问题描述】:

我正在尝试使用styles 更改indeterminate 进度条的颜色。添加了以下更改

在值/样式-v21中

<style name="CustomHorizontalProgress" >
        <item name="android:indeterminateTint">#FF00FF</item>
        <item name="android:indeterminateTintMode">src_in</item>
</style>

在价值观/风格中

<style name="CustomHorizontalProgress" >
        <item name="colorAccent">#FF00FF</item>
</style>

并在进度条中设置这些样式,如下所示

<ProgressBar
        android:id="@+id/progress"
        style="@style/Base.Widget.AppCompat.ProgressBar.Horizontal"
        android:theme="@style/CustomHorizontalProgress"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:indeterminate="true"/>

对于 api>=21 一切正常,但 colorAccent 未设置为棒棒糖前设备中的进度条颜色。

注意:我只想使用样式来实现这一点。

【问题讨论】:

    标签: android android-layout


    【解决方案1】:

    测试一下

    <style name="CustomHorizontalProgress" parent="android:Widget.ProgressBar.Horizontal" >
        <item name="android:indeterminateTint">#FF00FF</item>
        <item name="android:indeterminateTintMode">src_in</item>
    

    <style name="CustomHorizontalProgress" parent="android:Widget.ProgressBar.Horizontal">
        <item name="colorAccent">#FF00FF</item></style>
    

    布局xml

       <ProgressBar
            android:id="@+id/progress"
            style="@style/CustomHorizontalProgress"
            android:theme="@style/CustomHorizontalProgress"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:indeterminate="true"/>
    
    </style>
    

    【讨论】:

      【解决方案2】:
      progress.getProgressDrawable().setColorFilter(color, PorterDuff.Mode.SRC_IN);
      

      【讨论】:

      • 花点时间看清楚问题(尤其是注释),而不是为了提高声誉而复制粘贴答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-30
      • 1970-01-01
      • 1970-01-01
      • 2011-06-08
      • 2014-12-20
      • 2011-02-07
      • 1970-01-01
      相关资源
      最近更新 更多