`
52xianmengyu
  • 浏览: 63593 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类

Android自定义进度条颜色

阅读更多

先看效果图:

RoteView

老是提些各种需求问题,我觉得系统默认的颜色挺好的,但是Pk不过,谁叫我们不是需求人员呢,改吧!

这个没法了只能看源码了,还好下载了源码, sources\base\core\res\res\ 下应有尽有,修改进度条颜色只能找progress ,因为是改变样式,首先找styles.xml

找到xml后,进去找到:

1
2
3
4
5
6
7
8
9
10
<style name="Widget.ProgressBar">
    <item name="android:indeterminateOnly">true</item>
    <itemname="android:indeterminateDrawable">@android:drawable/progress_medium_white</item>
    <item name="android:indeterminateBehavior">repeat</item>
    <item name="android:indeterminateDuration">3500</item>
    <item name="android:minWidth">48dip</item>
    <item name="android:maxWidth">48dip</item>
    <item name="android:minHeight">48dip</item>
    <item name="android:maxHeight">48dip</item>
</style>

这是那个默认转圈的,但今天我们不修改这个,我们是要改变水平进度条颜色,所以找到:

1
2
3
4
5
6
7
<style name="Widget.ProgressBar.Horizontal">
    <item name="android:indeterminateOnly">false</item>
    <item name="android:progressDrawable">@android:drawable/progress_horizontal</item>
    <itemname="android:indeterminateDrawable">@android:drawable/progress_indeterminate_horizontal</item>
    <item name="android:minHeight">20dip</item>
    <item name="android:maxHeight">20dip</item>
</style>

你看系统一步一步关联的,扩展性很性,低耦合,所以我们现在只要改变进度条是怎么样画出来的就行了 ,但是负责画进度条的是 <item name="android:progressDrawable">  所以我们可以找到"drawable下的 progress_horizontal 文件,改变他就可以改变进度条颜色

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2008 The Android Open Source Project
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
 
 
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
 
-->
 
<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:centerColor="#ffffb600"
                    android:centerY="0.75"
                    android:endColor="#ffffcb00"
                    android:startColor="#ffffd300" />
            </shape>
        </clip>
    </item>
</layer-list>

看到没有,这是系统的进度条画出的布局条件

1
2
3
android:startColor="#80ffd300"
android:centerColor="#80ffb600"
android:endColor="#ff747674"

我们只要改变这个色值就能改变他的颜色,主要改变的是<item android:id="@android:id/progress">下的色值就行了。

说了这么多,到底怎么做呢,很简单:

在我们的项目下新建一个 style.xml 文件

创建一个style 标签,集成系统默认样式,然后自定义一个新的progressDrawable 文件,随后面在layout 中的progress 中引用这个文件就行。

1
2
3
4
5
6
7
<style name="ProgressBar_Mini" parent="@android:style/Widget.ProgressBar.Horizontal">
    <item name="android:maxHeight">50dip</item>
    <item name="android:minHeight">8dip</item>
    <item name="android:indeterminateOnly">false</item>
    <itemname="android:indeterminateDrawable">@android:drawable/progress_indeterminate_horizontal</item>
    <item name="android:progressDrawable">@drawable/progressbar_mini</item>
</style>

下面是我的 progressbar_mini 文件,改变了下android:endColor="#F5F5F5" android:startColor="#BEBEBE" 的色值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<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:centerY="0.75"
                android:endColor="#F5F5F5"
                android:startColor="#BEBEBE" />
        </shape>
    </item>
 
    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <corners android:radius="0dip" />
                <gradient
                    android:angle="270"
                    android:centerY="0.75"
                    android:endColor="#165CBC"
                    android:startColor="#85B0E9" />
            </shape>
        </clip>
    </item>
 
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <corners android:radius="5dip" />
                <gradient
                    android:angle="270"
                    android:centerY="0.75"
                    android:endColor="#165CBC"
                    android:startColor="#85B0E9" />
            </shape>
        </clip>
    </item>
</layer-list>

最后引用其就可以了。

1
2
3
4
5
6
<ProgressBar
    android:id="@+id/progress"
    style="@style/ProgressBar_Mini"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:progress="50" />
分享到:
评论

相关推荐

    Android自定义进度条样式一

    本主题将深入探讨如何创建一个自定义的进度条样式,即“Android自定义进度条样式一”。我们将讨论以下几个关键知识点: 1. **自定义View的原理** 自定义进度条本质上是自定义一个Android的View类。在Android中,你...

    android 竖直自定义进度条 带文字竖直进度条 类似电量显示

    总的来说,实现一个竖直自定义进度条并带文字显示的过程涉及到了Android的自定义View、样式配置、XML drawable以及布局管理等多个方面。理解这些知识点可以帮助开发者更自由地设计和定制Android应用的界面,提供更...

    基于Android自定义实现的几种进度条

    要自定义进度条,首先需要在`res/values/attrs.xml`中定义自定义属性,如进度条的颜色、宽度、高度、动画效果等。例如,可以定义一个属性`progressColor`来设置进度条的颜色,然后在布局文件中使用这些属性。 2. **...

    (源码)Android自定义进度条的4种实现方法

    本文将详细介绍四种不同的方法来实现Android自定义进度条,并提供相应的源码示例。 1. **使用XML绘制** 在Android中,我们可以使用`Shape`元素和`&lt;rotate&gt;`动画在XML布局文件中创建自定义进度条。例如,可以创建一...

    Android自定义进度条

    今天我们将深入探讨如何自定义一个进度条,这个话题源于一个博客文章——"Android自定义进度条",作者分享了他在实现这一功能时的经验和代码分析。在本文中,我们将详细解析自定义进度条的关键步骤和涉及的技术点。 ...

    Android自定义进度条样式

    "Android自定义进度条样式"是一个典型的例子,它涉及到对Android SDK中的ProgressBar控件进行定制,以改变其显示效果,如颜色、形状和动画等。下面将详细介绍如何实现这一功能。 首先,我们需要了解Android的...

    Android自定义进度条效果

    在实现Android自定义进度条效果时,需要从整体上考虑进度条的变化过程,包括进度条的显示、动画效果、颜色变化等。首先,需要设计进度条的五个状态:无进度、部分进度、完成进度、进度1到进度2的动画、进度2到进度3...

    Android 自定义进度条

    在Android开发中,自定义进度条是提升用户体验和界面美观度的一种常见方法。系统默认的进度条样式可能无法满足所有设计需求,因此开发者通常需要根据项目需求创建独特的进度条组件。下面将详细介绍如何在Android中...

    Android自定义进度条 Progressbar

    总之,这个自定义进度条实例展示了如何通过Android的图形API进行自定义控件绘制,同时提供了关于进度判断的思考。通过理解这个例子,开发者可以进一步扩展和优化自定义进度条的样式和功能,以适应各种应用场景。记住...

    自定义进度条颜色.

    在编程和用户界面设计中,自定义进度条颜色是一个重要的环节,它可以帮助提升应用程序的视觉效果和用户体验。进度条通常用于表示任务的完成状态或数据加载的过程,而自定义颜色则可以让进度条更好地融入到应用的整体...

    android自定义可拖动进度条

    http://blog.csdn.net/yanjunhui2011/article/details/56016414 ...该自定义组件的优势: 1、使用简单; 2、可随意改变圆点、直线的颜色和大小; 当然,也许你会吐槽,系统不是提供了 seekBar 吗,怎么不用 seekBar。

    android自定义圆形进度条

    这很可能是自定义进度条类的名称,其中包含了绘制和处理逻辑。"与源码对应博文.txt"可能包含了实现过程的详细步骤或者代码示例,可以帮助我们更好地理解实现细节。 总的来说,创建"android自定义圆形进度条"是一个...

    Android 自定义图片加载进度条

    在加载图片的过程中,通过监听器获取加载进度,并更新自定义进度条的进度值。 4. **布局集成** 在布局文件中,将自定义的进度条与ImageView放在一起,并通过代码设置图片加载监听器,将进度回调传递给进度条。这样...

    Android-RingProgressView自定义环形进度条支持自定义进度条颜色

    为了支持自定义颜色,`RingProgressView`可能会包含一些公开的属性,比如`progressColor`(进度条颜色)、`currentProgressColor`(当前进度颜色)和`textColor`(文本颜色)。这些属性可以通过XML布局文件或者Java...

    Android跑马进度条,普通进度条,自定义进度条

    本篇将详细探讨Android中的“跑马进度条”、普通进度条以及如何实现自定义进度条。 首先,让我们从普通进度条开始。在Android中,`ProgressBar`是一个基础控件,位于`android.widget`包下。它有两种模式:...

    自定义进度条对话框

    在IT开发领域,自定义进度条对话框是一个常见的需求,特别是在执行长时间操作或者需要用户等待的任务时,为了提供良好的用户体验,开发者通常会设计一个可视化的进度条来展示任务的完成状态。本文将深入探讨如何创建...

    Android自定义带文字的椭圆形进度条

    首先,我们需要创建一个新的XML布局文件,用于定义自定义进度条的外观。在res/layout目录下,创建一个名为`custom_progress_bar.xml`的文件,里面包含一个自定义的View组件。这个组件将继承自View或ProgressBar,并...

    安卓进度条loadingprogress相关-android自定义view自定义进度条图片合成图片绘制等功能很实用的自定义控件.rar

    自定义进度条允许开发者定制进度条的样式,如形状、颜色、动画效果等。在资源中,你可能找到如何通过继承ProgressBar或使用自定义ViewGroup来实现自定义进度条的方法。这通常涉及到重写`onDraw()`方法,使用Canvas...

Global site tag (gtag.js) - Google Analytics