circularprogressbar/smoothprogressbar开源视图使用学习

github地址:https://github.com/castorflex/SmoothProgressBar

多彩圆形进度条和多彩水平进度条

colors.xml

定义变化的颜色内容,用gplus_colors来进行标示

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <color name="gplus_color_1">#3e802f</color>
    <color name="gplus_color_2">#f4b400</color>
    <color name="gplus_color_3">#427fed</color>
    <color name="gplus_color_4">#b23424</color>

    <integer-array name="gplus_colors">
        <item>@color/gplus_color_1</item>
        <item>@color/gplus_color_2</item>
        <item>@color/gplus_color_3</item>
        <item>@color/gplus_color_4</item>
    </integer-array>

</resources>

activity_main.xml

start_btn-->进度条运行
end_btn-->进度条停止android:indeterminate="true"-->默认为true,否则控件不显示

app:cpb_color="#FFee44"-->圆形进度条默认颜色
app:cpb_colors="@array/gplus_colors"-->定义圆形进度条的颜色数组
app:cpb_max_sweep_angle="300"-->最大弧度大小,不能超过360,不能小于0,否则报错
app:cpb_min_sweep_angle="10"-->最小弧度
 app:cpb_rotation_speed="1.0"-->转圈的速度,值越大,速度越快,值越小,越慢

app:cpb_sweep_speed="2.0"-->也是控制速度的,暂时未知
app:spb_colors="@array/gplus_colors"-->定义水平进度条颜色数组
 app:spb_mirror_mode="true"-->水平进度条由两侧向中心方向移动
app:spb_mirror_mode="false"-->水平进度条由左侧向右边移动
 app:spb_sections_count="4"-->线性进度条上显示4个色条
 app:spb_stroke_separator_length="4dp"->色块间隔
 app:spb_mirror_mode="true"-->true 两侧向中间靠拢,false 由左向右。
app:spb_stroke_width="4dp"-->色块上下厚度
app:spb_reversed="false"-->false 左向右,true 右向左。

app:spb_progressiveStart_speed="5" -->色块移动开始速度

app:spb_progressiveStop_speed="1"-->色块移动停止速度 

activty_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical" >

    <Button
        android:id="@+id/start_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

    <Button
        android:id="@+id/end_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

    <fr.castorflex.android.circularprogressbar.CircularProgressBar
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/circularProgressBar"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:indeterminate="true"
        app:cpb_color="#FFee44"
        app:cpb_colors="@array/gplus_colors"
        app:cpb_max_sweep_angle="300"
        app:cpb_min_sweep_angle="10"
        app:cpb_rotation_speed="1.0"
        app:cpb_stroke_width="4dp"
        app:cpb_sweep_speed="1.0" />

    <!-- app:spb_color="#FF0000" -->

    <fr.castorflex.android.smoothprogressbar.SmoothProgressBar
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/smoothProgressBar"
        style="@style/SmoothProgressBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:indeterminate="true"
        app:spb_colors="@array/gplus_colors"
        app:spb_mirror_mode="true"
        app:spb_progressiveStart_activated="true"
        app:spb_progressiveStart_speed="1.5"
        app:spb_progressiveStop_speed="3.4"
        app:spb_reversed="false"
        app:spb_sections_count="4"
        app:spb_speed="2.0"
        app:spb_stroke_separator_length="4dp"
        app:spb_stroke_width="4dp" />

</LinearLayout>

MainActivity.java

package com.example.smoothprogressbar;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import fr.castorflex.android.circularprogressbar.CircularProgressDrawable;

public class MainActivity extends Activity {
    private Button start_btn;
    private Button end_btn;
    //圆形进度条
    private fr.castorflex.android.circularprogressbar.CircularProgressBar circularProgressBar;
    //水平进度条
    private fr.castorflex.android.smoothprogressbar.SmoothProgressBar smoothProgressBar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        start_btn = (Button) findViewById(R.id.start_btn);
        end_btn = (Button) findViewById(R.id.end_btn);

        circularProgressBar = (fr.castorflex.android.circularprogressbar.CircularProgressBar) findViewById(R.id.circularProgressBar);
        smoothProgressBar = (fr.castorflex.android.smoothprogressbar.SmoothProgressBar) findViewById(R.id.smoothProgressBar);

        start_btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                //圆形进度条转动
                CircularProgressDrawable drawable = (CircularProgressDrawable) circularProgressBar
                        .getIndeterminateDrawable();
                drawable.start();
                //水平进度条启动
                smoothProgressBar.progressiveStart();
            }
        });
        end_btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                //圆形进度条停止转动
                CircularProgressDrawable drawable = (CircularProgressDrawable) circularProgressBar
                        .getIndeterminateDrawable();
                drawable.progressiveStop();
                //水平进度条停止启动
                smoothProgressBar.progressiveStop();

            }
        });
    }

}

我程序github地址:

时间: 2024-10-23 00:31:23

circularprogressbar/smoothprogressbar开源视图使用学习的相关文章

视图动画学习算法和数据结构(二)(&lt;Garry进阶(四)&gt;)

转载请注明: 接视图动画学习算法和数据结构(不定期更新)() 快速排序(QuickSort) 动画演示: java代码: public class QuickSort { private int array[]; private int length; public void sort(int[] inputArr) { if (inputArr == null || inputArr.length == 0) { return; } this.array = inputArr; length

图像处理与计算机视觉开源软件库及学习网站

1:OpenCv(计算机视觉必学的库,个人认为其作用相当强悍) http://opencv.willowgarage.com/wiki/ 2:CVpaper 主页上推荐的开源视觉算法库,最全的了,也非常新,强烈推荐大家去看看 http://www.cvpapers.com/rr.html 3:cmu的图像处理和计算机视觉软件库,非常全,但有点老了,但都很经典,资源非常丰富 http://www.cs.cmu.edu/~cil/v-source.html 4:机器学习Machine Learnin

SunSonic 3.0 ORM开源框架的学习

SubSonic 3.0简介 接触到SubSonic3.0 ORM框架是看了AllEmpty大神的从零开始编写自己的C#框架(链接在此)系列的随笔接触到的,本文章学习内容源于AllEmpty大神. SubSonic就是一个ORM开源框架.作者是Robe Conery,用C#语言写的.其中包含了T4模板可以快速生成数据层实体类,这是一个实用的快速开发框架.让开发人员原理SQL语句的拼接,专注于业务逻辑的实现.SubSonic 3.0支持MsSql.MySql与SQLite三种数据库,对数据库操作灵

MYSQL视图的学习笔记

MYSQL视图的学习笔记,学至Tarena金牌讲师何山,金色晨曦科技公司技术总监沙利穆 课程笔记的综合. 视图及图形化工具   1.       视图的定义 视图就是从一个或多个表中,导出来的表,是一个虚拟存在的表.视图就像一个窗口(数据展示的窗口),通过这个窗口,可以看到系统专门提供的数据(也可以查看到数据表的全部数据),使用视图就可以不用看到数据表中的所有数据,而是只想得到所需的数据. 在数据库中,只存放了视图的定义,并没有存放视图的数据,数据还是存储在原来的表里,视图的数据是依赖原来表中的

iOS及Mac开源项目和学习资料【超级全面】

UI 下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.具体使用看“使用方法”. (国人写) XHRefreshControl – XHRefreshControl 是一款高扩展性.低耦合度的下拉刷新.上提加载更多的组件.(国人写) CBStoreHou

iOS开发--iOS及Mac开源项目和学习资料

文/零距离仰望星空(简书作者)原文链接:http://www.jianshu.com/p/f6cdbc8192ba著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 原文出处:codecloud UI下拉刷新EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字

图像处理与计算机视觉开源软件库及学习站点

1:OpenCv(计算机视觉必学的库,个人觉得其作用相当强悍) http://opencv.willowgarage.com/wiki/ 2:CVpaper 主页上推荐的开源视觉算法库,最全的了,也很新,强烈推荐大家去看看 http://www.cvpapers.com/rr.html 3:cmu的图像处理和计算机视觉软件库,很全,但有点老了,但都很经典,资源很丰富 http://www.cs.cmu.edu/~cil/v-source.html 4:机器学习Machine Learning 课

关于开源金融计算学习的总结(截至2017年1月3日)

本文在Creative Commons许可证下发布 开源金融计算,源自开源数值计算.实际上需要学习以下内容就可以应对金融计算了. 1.Linux/Unix基本命令,2.Shell基本编程(这可能会花你一天时间),最好除了shell编程之外至少学一种脚本语言(建议Perl或Python).3.再根据你的需要选学下面某种数学分析软件:R,Scilab,Octave,C/C++(虽然不是"软件",但是做金融数学的人多半都用它写算法,不少投行.证券的研究部也在用它.有时候你遇到用上面的软件处理

「4+1视图」学习与理解

声明:部分内容摘录了简书「橘色对白」作者的文章片段. 之前经常看到文章中提到「4+1视图」,对其也有片面的理解,但一直没有实践过,不清楚其真正的作用,这两天在业务需求分析中运用了其中的一部分,想谈谈自己的粗浅理解. 最近在调研「多租户」实现方案时,看到简友「橘色对白」的3篇关于多租户架构的文章,其中一篇「以CRM系统为例,浅析初级SaaS架构的构建方法」,以「4+1视图」的形式,覆盖了分析.设计.开发.部署等阶段,如何一步一步递进,形成最终的实施方案. 所谓「4+1视图」,是从5个不同视角来描述