首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Android中更改ProgressBar的进度指示器颜色

如何在Android中更改ProgressBar的进度指示器颜色
EN

Stack Overflow用户
提问于 2011-04-21 22:54:24
回答 14查看 224.9K关注 0票数 195

我已经设置了水平ProgressBar

我想把进度颜色改成黄色。

<ProgressBar 
    android:id="@+id/progressbar" 
    android:layout_width="80dip" 
    android:layout_height="20dip"  
    android:focusable="false" 
    style="?android:attr/progressBarStyleHorizontal" />

问题是,进度颜色在不同的设备上是不同的。所以,我想让它修复进度的颜色。

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2011-04-21 23:03:14

我从我的一个应用程序中复制了这个,所以有一些额外的属性,但应该会给你一个想法。这来自具有进度条的布局:

<ProgressBar
    android:id="@+id/ProgressBar"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:indeterminate="false"
    android:maxHeight="10dip"
    android:minHeight="10dip"
    android:progress="50"
    android:progressDrawable="@drawable/greenprogress" />

然后创建一个新的可绘制文件,其中包含类似以下内容的内容(在本例中为greenprogress.xml):

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background">
        <shape>
            <corners android:radius="5dip" />
            <gradient
                android:angle="270"
                android:centerColor="#ff5a5d5a"
                android:centerY="0.75"
                android:endColor="#ff747674"
                android:startColor="#ff9d9e9d" />
        </shape>
    </item>

    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <corners android:radius="5dip" />
                <gradient
                    android:angle="270"
                    android:centerColor="#80ffb600"
                    android:centerY="0.75"
                    android:endColor="#a0ffcb00"
                    android:startColor="#80ffd300" />
            </shape>
        </clip>
    </item>
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <corners android:radius="5dip" />
                <gradient
                    android:angle="270"
                    android:endColor="#008000"
                    android:startColor="#33FF33" />
            </shape>
        </clip>
    </item>

</layer-list>

您可以根据需要更改颜色,这将给您一个绿色的进度条。

票数 378
EN

Stack Overflow用户

发布于 2013-02-01 02:43:36

一个更简单的解决方案:

progess_drawable_blue

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
    <shape>
        <solid
                android:color="@color/disabled" />
    </shape>
</item>

<item
    android:id="@android:id/progress">
    <clip>
        <shape>
            <solid
                android:color="@color/blue" />
        </shape>
    </clip>
</item>

</layer-list>
票数 106
EN

Stack Overflow用户

发布于 2017-09-25 19:00:26

只需在values/styles.xml中创建一个样式。

<style name="ProgressBarStyle">
    <item name="colorAccent">@color/greenLight</item>
</style>

然后将此样式设置为您的ProgressBar主题。

<ProgressBar
    android:theme="@style/ProgressBarStyle"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

不管你的进度条是水平的还是圆形的。就这样。

票数 64
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5745814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档