`

android圆形进度条ProgressBar颜色设置

阅读更多
花样android Progressbar http://www.eoeandroid.com/thread-1081-1-1.html
http://www.cnblogs.com/xirihanlin/archive/2010/06/14/1758145.html

xml布局文件需加入如下的进度条构件:
<ProgressBar
        android:id="@+id/loadProgressBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:indeterminateDrawable="@drawable/progressbar" />


其中的indeterminteDrawable属性就是用来设置进度条颜色等属性的,其内容如下:
<?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:toDegrees="360" >

    <shape
        android:innerRadiusRatio="3"
        android:shape="ring"
        android:thicknessRatio="8"
        android:useLevel="false" >

        <gradient
            android:centerColor="#FFFFFF"
            android:centerY="0.50"
            android:endColor="#FFFF00"
            android:startColor="#000000"
            android:type="sweep"
            android:useLevel="false" />
    </shape>

</rotate>


参考:http://dev.10086.cn/cmdn/bbs/viewthread.php?tid=18469
http://tienfook.blog.163.com/blog/static/1666620112010528637217/
http://www.ihoton.com/androidandroid-progressbar-color.html

三种方式实现自定义圆形页面加载中效果的进度条:
来自:http://407827531.iteye.com/blog/1067025

默认情况下Indeterminate Progressbar是白色的,如果容器的背景也是白色的,这样就根本看不到Progressbar了。

幸好Android自带了一些反转样式,你可以采用其中一个合适的:
<ProgressBar style="@android:style/Widget.ProgressBar.Inverse"/> 
<ProgressBar style="@android:style/Widget.ProgressBar.Large.Inverse"/> 
<ProgressBar style="@android:style/Widget.ProgressBar.Small.Inverse"/>


进度条:

<ProgressBar
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
<ProgressBar
        android:id="@+id/circleProgressBar"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        mce_style="?android:attr/progressBarStyleLarge" />


一、通过动画实现
定义res/anim/loading.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false" >

    <item
        android:drawable="@drawable/loading_01"
        android:duration="150"/>

    <item
        android:drawable="@drawable/loading_02"
        android:duration="150"/>

    <item
        android:drawable="@drawable/loading_03"
        android:duration="150"/>

    <item
        android:drawable="@drawable/loading_04"
        android:duration="150"/>

    <item
        android:drawable="@drawable/loading_05"
        android:duration="150"/>

    <item
        android:drawable="@drawable/loading_06"
        android:duration="150"/>

    <item
        android:drawable="@drawable/loading_07"
        android:duration="150"/>

</animation-list>


在layout文件中引用如下:
<ProgressBar
        android:id="@+id/loading_process_dialog_progressBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:indeterminate="false"
        android:indeterminateDrawable="@anim/loading" />


二、通过自定义颜色实现
定义res/drawable/dialog_style_xml_color.xml如下:
<?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:toDegrees="360" >

    <shape
        android:innerRadiusRatio="3"
        android:shape="ring"
        android:thicknessRatio="8"
        android:useLevel="false" >

        <gradient
            android:centerColor="#FFDC35"
            android:centerY="0.50"
            android:endColor="#CE0000"
            android:startColor="#FFFFFF"
            android:type="sweep"
            android:useLevel="false" />
    </shape>

</rotate>


在layout文件中引用如下:
<ProgressBar
        android:id="@+id/loading_process_dialog_progressBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:indeterminate="false"
        android:indeterminateDrawable="@drawable/dialog_style_xml_color" />


三、使用一张图片进行自定义
定义res/drawable/dialog_style_xml_icon.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item>
        <rotate
            android:drawable="@drawable/dialog_progress_round"
            android:fromDegrees="0.0"
            android:pivotX="50.0%"
            android:pivotY="50.0%"
            android:toDegrees="360.0" />
    </item>

</layer-list>


在layout文件中引用如下:
<ProgressBar
        android:id="@+id/loading_process_dialog_progressBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:indeterminate="false"
        android:indeterminateDrawable="@drawable/dialog_style_xml_icon" />


或者
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
   <item android:id="@android:id/background">   
    <shape>   
        <corners android:radius="5dip" />   
        <gradient android:startColor="#ff9d9e9d"   
             android:centerColor="#ff5a5d5a"   
             android:centerY="0.75"   
             android:endColor="#ff747674"   
             android:angle="270"   
             />   
    </shape>   
</item>   
<item android:id="@android:id/secondaryProgress">   
    <clip>   
        <shape>   
            <corners android:radius="5dip" />   
            <gradient android:startColor="#80ffd300"   
                 android:centerColor="#80ffb600"   
                 android:centerY="0.75"   
                 android:endColor="#a0ffcb00"   
                 android:angle="270"   
                />   
        </shape>   
    </clip>   
</item>   
<item android:id="@android:id/progress">   
    <clip>   
        <shape>   
            <corners android:radius="5dip" />   
            <gradient android:startColor="@color/progress_start"   
                android:endColor="@color/progress_end"   
                android:angle="270" />   
        </shape>   
    </clip>   
</item> 
</layer-list>


代码中设置:
mProgress = (ProgressBar) findViewById(R.id.progress_bar);
		Drawable d = this.getResources().getDrawable(R.drawable.my_progress);
		mProgress.setProgressDrawable(d);
分享到:
评论
1 楼 lucherr 2013-04-22  
好文章要顶!!!

相关推荐

    Android 三种常用实现自定义圆形进度条 ProgressBar

    本文将详细介绍如何实现三种常用的方法来创建自定义的圆形进度条(ProgressBar)。这些方法包括使用Shape Drawable、自定义View以及使用第三方库。 一、Shape Drawable实现圆形进度条 Shape Drawable是Android系统...

    Android编程之ProgressBar圆形进度条颜色设置方法

    本文实例讲述了Android ProgressBar圆形进度条颜色设置方法。分享给大家供大家参考,具体如下: 你是不是还在为设置进度条的颜色而烦恼呢……别着急,且看如下如何解决。 ProgressBar分圆形进度条和水平进度条 我...

    Android自定义进度条 Progressbar

    这个自定义的进度条(progressbar)可以用于展示加载、缓冲或任何需要进度指示的场景。 首先,我们需要创建一个新的`ProgressBar`子类,例如`MyProgress`。在Java或Kotlin中,我们需要继承`ProgressBar`类,并重写...

    android 圆形进度条demo

    在Android开发中,有时我们需要为用户展示一种直观的进度指示,圆形进度条就是一个常见的选择。本Demo,"android 圆形进度条demo",提供了一种实现方式,它基于源码,可以帮助开发者快速理解和集成此类控件。在这个...

    Android 圆形进度条示例

    下面将详细介绍Android圆形进度条的相关知识点。 1. **Android 进度条组件** Android系统提供了多种类型的进度条组件,包括`ProgressBar`和`SeekBar`。其中,`ProgressBar`通常用于显示不可交互的进度,而`SeekBar...

    安卓进度条loadingprogress相关-Android源码圆形进度条.rar

    总结,这个压缩包提供的源码实例是关于Android圆形进度条的实现,可以帮助开发者深入理解自定义视图、图形绘制以及动画原理。通过学习和实践,可以提升Android UI开发能力,为自己的应用添加更个性化的界面元素。

    Android进阶篇之RoundProgress(圆形进度条)使用两张图片叠加实现

    本篇文章将深入探讨如何在Android中实现一个名为RoundProgress的圆形进度条,并通过两张图片的叠加来达到独特的视觉效果。这个圆形进度条不仅能够显示进度,还能通过巧妙的设计增加界面的美观度。 首先,我们需要...

    android简单的圆形进度条

    以上就是创建一个简单Android圆形进度条的基本步骤。你还可以通过修改XML drawable中的属性,如环形的宽度、颜色、旋转速度等,来进一步定制你的圆形进度条。此外,如果需要动态更新进度,可以结合AsynTask或者其他...

    圆形进度条progressbar

    在Android开发中,圆形进度条(Circular ProgressBar)是一种常见的UI元素,用于展示任务或操作的进度,它以圆形的方式呈现,既美观又直观。本文将深入探讨如何创建一个具有蓝色背景、动画效果以及自定义对话框...

    Android自定义带动画效果的圆形ProgressBar

    例如,可以设置圆形进度条的颜色、线宽、文字的颜色和大小等属性。 六、小结 Android自定义带动画效果的圆形ProgressBar可以通过继承View类并重写onDraw方法来实现。可以使用Canvas对象来绘制圆形进度条,使用...

    【Android】自定义圆形进度条效果(有进度标识点)

    // 设置画笔颜色 canvas.drawColor(Color.TRANSPARENT); // 白色背景 paint.setStrokeWidth(progressStrokeWidth); // 线宽 paint.setStyle(Style.STROKE); oval.left = marxArcStorkeWidth / 2; // 左上角x ...

    android 实现的椭圆形进度条

    与常见的线性或圆形进度条不同,椭圆形进度条在视觉上呈现出椭圆形的轮廓,进度填充从中心开始,沿着椭圆的边缘逐渐展开。这种设计既美观又能够提供良好的用户体验,尤其是在展示数据加载、任务完成度等场景下。 ...

    Android 圆形颜色渐变进度条 自定义控件

    这里我们将使用`SweepGradient`,因为它更适合圆形进度条。 ```java @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // 计算圆的半径 int radius = Math.min(getWidth(), getHeight...

    Android中使用ProgressBar实现进度条

    在Android开发中,ProgressBar是一个非常重要的组件,它用于显示进度状态,可以是圆形或水平的。这个组件在用户等待操作完成时提供了良好的用户体验,比如在下载、上传、解压等耗时操作中常见。本篇文章将深入探讨...

    Android 圆形进度条,矩形进度条以及下载进度条的实现,实现过程简单明了,扩展性强。

    Android SDK提供了`ProgressBar`类,通过设置`android:indeterminateDrawable`属性可以创建基本的圆形进度条。然而,为了自定义样式,我们可以使用`SeekBar`类,通过调整其属性如`android:progressDrawable`和`...

    AndroidProgressBar_Android ProgressBar进度条的几乎全部的用法源码集.rar

    3. **圆形ProgressBar**:通过设置`style="@android:style/Widget.Holo.ProgressBar.Horizontal"`可以将线性进度条转换为圆形,常用于加载动画。也可以使用自定义视图实现更复杂的圆环效果。 4. **自定义...

    android ProgressBar进度条等待demo

    这个"android ProgressBar进度条等待demo"是一个示例项目,旨在帮助开发者理解如何在应用程序中实现不同类型的进度条,包括横线进度条、圆形加载中效果以及自定义的ProgressBar。 1. **横线进度条**: 横线进度条...

    Android 圆形进度条

    "Android圆形进度条"就是一个典型的例子,它允许开发者创建具有个性化外观和行为的进度指示器。这个自定义控件通常用于显示任务的完成程度或者加载状态,比如下载、上传或者缓冲等。 1. **自定义控件基础知识**: ...

    Android自定义控件——圆形进度条

    上述代码定义了一个旋转的环形形状,颜色为`holo_blue_bright`,并且设置了内径比例和厚度比例,以控制圆形进度条的外观。 接下来,我们需要创建一个Java类`CircleProgressView`,继承自`LinearLayout`或`...

Global site tag (gtag.js) - Google Analytics