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地址:
circularprogressbar/smoothprogressbar开源视图使用学习的更多相关文章
- Android 开源项目及其学习
Android 系统研究:http://blog.csdn.net/luoshengyang/article/details/8923485 Android 腾讯技术人员博客 http://hukai ...
- ava如何实现系统监控、系统信息收集、sigar开源API的学习(转)
ava如何实现系统监控.系统信息收集.sigar开源API的学习(转) 转自:http://liningjustsoso.iteye.com/blog/1254584 首先给大家介绍一个开源工具Sig ...
- MYSQL视图的学习笔记
MYSQL视图的学习笔记,学至Tarena金牌讲师,金色晨曦科技公司技术总监沙利穆 课程笔记的综合. 视图及图形化工具 1. 视图的定义 视图就是从一个或多个表中,导出来的表,是一个虚 ...
- 开源项目live555学习心得
推荐:伊朗美女找丈夫比找工作难女人婚前一定要看清三件事 × 登录注册 疯狂少男-IT技术的博客 http://blog.sina.com.cn/crazyboyzhaolei [订阅][手机订 ...
- Django学习笔记(2)——模型,后台管理和视图的学习
一:Web投票示例 本节我们首先从全局范围再复习一下Django的概念,让自己对Django的设计理念, 功能模块,体系架构,基本用法有初步的印象. Django初始的详细博客内容:请点击我 该应用包 ...
- 一个toolkit或者一个开源项目如何学习它并使用它
一个toolkit或者一个开源项目如何学习它并使用它 一般一个流行的toolkit和开源项目,一般都会被广泛地被应用: 那么,我们如何学习它,如何应用它在自己的业务场景中呢? 答案就是:学习源码并借鉴 ...
- iOS及Mac开源项目和学习资料【超级全面】
UI 下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITable ...
- iOS开发--iOS及Mac开源项目和学习资料
文/零距离仰望星空(简书作者)原文链接:http://www.jianshu.com/p/f6cdbc8192ba著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 原文出处:codecl ...
- 分享海量 iOS 及 Mac 开源项目和学习资料
UI 下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. SVPullToRefresh - 下拉刷新控件. MJRefresh - 仅需一行代码就可以为UITable ...
随机推荐
- Openjudge-计算概论(A)-奥运奖牌计数
描述: 2008年北京奥运会,A国的运动员参与了n天的决赛项目(1≤n≤17).现在要统计一下A国所获得的金.银.铜牌数目及总奖牌数. 输入输入n+1行,第1行是A国参与决赛项目的天数n,其后n行,每 ...
- C#第五天
引用命名空间快捷键:Shift + Alt +F10: 值类型和引用类型: 区别: 1,值类型和引用类型在内存上存储的地方不一样: 2.在传递值类型和传递引用类型的时候,传递的方式不一样.值类型我们称 ...
- Tomcat 启动报错:javax.naming.NamingException: No naming context bound to this class loader
分析原因:在类中使用了Log .只是在项目lib路径下添加了slf4 的jar包,在Tomcat\lib下未添加 解决方案:将slf4的jar包放到tomcat\lib下.
- pt-heartbeat监控延时
测试国内主机到国外主机mysql的延时 主机 perl /usr/bin/pt-heartbeat -uroot --ask-pass -D uk --create-table --update ...
- input之placeholder与行高的问题
我们实现一个输入框的视觉的时候为了保持其各种各样的兼容性: 1.鼠标要跟文字一样高度. 2.文字要居中对齐. 3.还要有placeholder 第一个目标,当实现一个高度为40像素的高度输入框时,为了 ...
- ios简单实现如果没有开启定位,提示开启系统软件定位功能
if([CLLocationManager locationServicesEnabled] && [CLLocationManager authorizationStatus] == ...
- Javascript和HTML dom
今天在看DOM那一章的时候突然想到一个问题,众所周知的js的数据类型有两种:原始类型和对象类型.其中原始类型又包括以下几种类型:数字型.字符串型.布尔值.null和undefined.其中对象类型包括 ...
- Mayor's posters问题处理
题目的感悟: /*这道题的想法是先开一个数组,先构造一颗线段树,然后每次都进行一次更新最后我们在访问的时候只要看最外层还剩下那些数字,对他们进行统计然后将结果返回即可.这道题的难度本来是不大的,思路非 ...
- permutation求全排列
include <iostream> #include <string> using namespace std; void swap(char &c1, char & ...
- Windows中安装jdk,出现javac不是内部或外部命令 也不是可运行的程序
在经过多次实验,终于解决了在dos窗口验证jdk是否安装成功的错误提示-----javac不是内部或外部命令 也不是可运行的程序 首先要明确的是 在新建 JAVA_HOME , CLASSPATH文件 ...