相信大家在开发中或多或少会用到一些进度条,但很多时候我们都会自定义一些进度条,或者使用第三方框架,比如SmartRefreshLayout等,但Android原生的进度条的功能也很强大,Android进度条有4种风格可以使用。

Android进度条有4种风格可以使用。

  • 默认值是progressBarStyle。
  • 设置成progressBarStyleSmall后,图标变小。
  • 设置成progressBarStyleLarge后,图标变大
  • 设置成progressBarStyleHorizontal后,变成横向长方形。

自定义圆形进度条ProgressBar的一般有三种方式:

一、通过动画实现

定义res/anim/loading_anim.xml如下:
<?xml version="1.0"encoding="utf-8"?>
在layout文件中引用如下:

二、通过自定义颜色实现

定义res/drawable/loading_color.xml如下:
<?xml version="1.0" encoding="utf-8"?>                
在layout文件中引用如下:

三、使用一张图片进行自定义

定义res/drawable/loading_img.xml如下:
<?xml version="1.0" encoding="utf-8"?>                
在layout文件中引用如下:

另外,在平时我经常用的一个第三方框架就是SmartRefreshLayout

SmartRefreshLayout是一个“聪明”或者说“智能”的下拉刷新布局,由于它的“智能”,它不只是如其它的刷新布局所说的支持所有的View,还支持多层嵌套的视图结构。
除了“聪明”之外,SmartRefreshLayout还具备了很多的特点。SmartRefreshLayout 没有使用到:序列化、反序列化、JNI、反射,所以并不需要添加混淆过滤代码
它继承自ViewGroup 而不是其它的FrameLayout或者LinearLayout,提高了性能。
github网址: https://github.com/scwang90/SmartRefreshLayout

使用姿势

1.在 buld.gradle 中添加依赖

compile 'com.android.support:appcompat-v7:25.3.1'//版本随意compile 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.3-alpha-6'compile 'com.scwang.smartrefresh:SmartRefreshHeader:1.0.3-alpha-6'//没有使用特殊Header,可以不加这行

2.在XML布局文件中添加 SmartRefreshLayout

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

3.在 Activity 或者 Fragment 中添加代码

RefreshLayout refreshLayout = (RefreshLayout)findViewById(R.id.refreshLayout);refreshLayout.setOnRefreshListener(new OnRefreshListener() {    @Override    public void onRefresh(RefreshLayout refreshlayout) {        refreshlayout.finishRefresh(2000);    }});refreshLayout.setOnLoadmoreListener(new OnLoadmoreListener() {    @Override    public void onLoadmore(RefreshLayout refreshlayout) {        refreshlayout.finishLoadmore(2000);    }});

使用指定的 Header 和 Footer

1.方法一 全局设置

public class App extends Application {    //static 代码段可以防止内存泄露    static {        //设置全局的Header构建器        SmartRefreshLayout.setDefaultRefreshHeaderCreater(new DefaultRefreshHeaderCreater() {                @Override                public RefreshHeader createRefreshHeader(Context context, RefreshLayout layout) {                    layout.setPrimaryColorsId(R.color.colorPrimary, android.R.color.white);//全局设置主题颜色                    return new ClassicsHeader(context).setSpinnerStyle(SpinnerStyle.Translate);//指定为经典Header,默认是 贝塞尔雷达Header                }            });        //设置全局的Footer构建器        SmartRefreshLayout.setDefaultRefreshFooterCreater(new DefaultRefreshFooterCreater() {                @Override                public RefreshFooter createRefreshFooter(Context context, RefreshLayout layout) {                    //指定为经典Footer,默认是 BallPulseFooter                    return new ClassicsFooter(context).setSpinnerStyle(SpinnerStyle.Translate);                }            });    }}   (注意:方法一 设置的Header和Footer的优先级是最低的,如果同时还使用了方法二、三,将会被其它方法取代)

2.方法二 XML布局文件指定

                        (注意:方法二 XML设置的Header和Footer的优先级是中等的,会被方法三覆盖。)

3.方法三 Java代码设置

final RefreshLayout refreshLayout = (RefreshLayout) findViewById(R.id.refreshLayout);//设置 Header 为 Material风格refreshLayout.setRefreshHeader(new MaterialHeader(this).setShowBezierWave(true));//设置 Footer 为 球脉冲refreshLayout.setRefreshFooter(new BallPulseFooter(this).setSpinnerStyle(SpinnerStyle.Scale));

在无意中使用这个框架,感觉很爽,很智能,使用上基本上就是傻瓜式的搬运,不过想自己运用的更加丰富就需要对框架的源码进行解析

更多相关文章

  1. Android开发5――文件读写
  2. android 获取uri的正确文件路径的办法
  3. Mars Android视频学习笔记——01_16_SQLite使用方法
  4. Android 总结:进阶之路(资源与方法)
  5. Android 关闭所有Activity完全退出程序方法
  6. android 图文列表的实现方法
  7. 使用universal-image-loader中出现的EOFException解决方法
  8. 在android studio的虚拟机的sd卡上创建文件夹

随机推荐

  1. Android开发视频教程
  2. android系统编译的网站
  3. Android SQLite数据库实例
  4. Android Library项目注意事项
  5. android SD 卡写操作
  6. Android 银行卡手机号带空格格式
  7. Android gallery与BaseaDapter的使用
  8. Android(安卓)输入法遮挡问题
  9. Android 启动时间优化
  10. kotlin开发Android入门篇一