先看效果图:
老是提些各种需求问题,我觉得系统默认的颜色挺好的,但是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 >
< item name = "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 >
< item name = "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" ?>
< 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 >
< item name = "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
|
< 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自定义进度条样式一”。我们将讨论以下几个关键知识点: 1. **自定义View的原理** 自定义进度条本质上是自定义一个Android的View类。在Android中,你...
总的来说,实现一个竖直自定义进度条并带文字显示的过程涉及到了Android的自定义View、样式配置、XML drawable以及布局管理等多个方面。理解这些知识点可以帮助开发者更自由地设计和定制Android应用的界面,提供更...
要自定义进度条,首先需要在`res/values/attrs.xml`中定义自定义属性,如进度条的颜色、宽度、高度、动画效果等。例如,可以定义一个属性`progressColor`来设置进度条的颜色,然后在布局文件中使用这些属性。 2. **...
本文将详细介绍四种不同的方法来实现Android自定义进度条,并提供相应的源码示例。 1. **使用XML绘制** 在Android中,我们可以使用`Shape`元素和`<rotate>`动画在XML布局文件中创建自定义进度条。例如,可以创建一...
今天我们将深入探讨如何自定义一个进度条,这个话题源于一个博客文章——"Android自定义进度条",作者分享了他在实现这一功能时的经验和代码分析。在本文中,我们将详细解析自定义进度条的关键步骤和涉及的技术点。 ...
"Android自定义进度条样式"是一个典型的例子,它涉及到对Android SDK中的ProgressBar控件进行定制,以改变其显示效果,如颜色、形状和动画等。下面将详细介绍如何实现这一功能。 首先,我们需要了解Android的...
在实现Android自定义进度条效果时,需要从整体上考虑进度条的变化过程,包括进度条的显示、动画效果、颜色变化等。首先,需要设计进度条的五个状态:无进度、部分进度、完成进度、进度1到进度2的动画、进度2到进度3...
在Android开发中,自定义进度条是提升用户体验和界面美观度的一种常见方法。系统默认的进度条样式可能无法满足所有设计需求,因此开发者通常需要根据项目需求创建独特的进度条组件。下面将详细介绍如何在Android中...
总之,这个自定义进度条实例展示了如何通过Android的图形API进行自定义控件绘制,同时提供了关于进度判断的思考。通过理解这个例子,开发者可以进一步扩展和优化自定义进度条的样式和功能,以适应各种应用场景。记住...
在编程和用户界面设计中,自定义进度条颜色是一个重要的环节,它可以帮助提升应用程序的视觉效果和用户体验。进度条通常用于表示任务的完成状态或数据加载的过程,而自定义颜色则可以让进度条更好地融入到应用的整体...
http://blog.csdn.net/yanjunhui2011/article/details/56016414 ...该自定义组件的优势: 1、使用简单; 2、可随意改变圆点、直线的颜色和大小; 当然,也许你会吐槽,系统不是提供了 seekBar 吗,怎么不用 seekBar。
这很可能是自定义进度条类的名称,其中包含了绘制和处理逻辑。"与源码对应博文.txt"可能包含了实现过程的详细步骤或者代码示例,可以帮助我们更好地理解实现细节。 总的来说,创建"android自定义圆形进度条"是一个...
在加载图片的过程中,通过监听器获取加载进度,并更新自定义进度条的进度值。 4. **布局集成** 在布局文件中,将自定义的进度条与ImageView放在一起,并通过代码设置图片加载监听器,将进度回调传递给进度条。这样...
为了支持自定义颜色,`RingProgressView`可能会包含一些公开的属性,比如`progressColor`(进度条颜色)、`currentProgressColor`(当前进度颜色)和`textColor`(文本颜色)。这些属性可以通过XML布局文件或者Java...
本篇将详细探讨Android中的“跑马进度条”、普通进度条以及如何实现自定义进度条。 首先,让我们从普通进度条开始。在Android中,`ProgressBar`是一个基础控件,位于`android.widget`包下。它有两种模式:...
在IT开发领域,自定义进度条对话框是一个常见的需求,特别是在执行长时间操作或者需要用户等待的任务时,为了提供良好的用户体验,开发者通常会设计一个可视化的进度条来展示任务的完成状态。本文将深入探讨如何创建...
自定义进度条允许开发者定制进度条的样式,如形状、颜色、动画效果等。在资源中,你可能找到如何通过继承ProgressBar或使用自定义ViewGroup来实现自定义进度条的方法。这通常涉及到重写`onDraw()`方法,使用Canvas...
* 可以自定义进度条的背景颜色和边框颜色 * 可以实现渐变色效果 * 可以根据需要展示进度条当前的比例 * 可以自定义进度条的外观和行为 Android自定义水平渐变进度条的缺点包括: * 需要合理的设计和实现 * 需要...