如何在android中实现一个材质devise循环进度条

我想通过Gmail的Android应用程序在收件箱中制作一个材质devise循环进度条。 我如何做到这一点(在棒棒糖设备中)?

我试图达到类似的效果 通过Gmail收件箱的素材devise圆形进度条

材料devise圆形进度条的好实现(来自rahatarmanahmed / CircularProgressView ),

<com.github.rahatarmanahmed.cpv.CircularProgressView xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/progress_view" android:layout_width="40dp" android:layout_height="40dp" app:cpv_indeterminate="true"/> 

在这里输入图像说明

 <ProgressBar android:id="@+id/loading_spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:indeterminateTintMode="src_atop" android:indeterminateTint="@color/your_customized_color" android:layout_gravity="center" /> 

效果如下所示:

IMG

我已经将三个Material Design progress drawable移植到了Android 4.0中,可以用来作为常规ProgressBarreplace,外观完全相同。

这些drawable还支持着色API(和RTL支持),并使用?colorControlActivated作为默认色调。 为了方便,还引入了扩展ProgressBar MaterialProgressBar小部件。

DreaminginCodeZH / MaterialProgressBar

这个项目也被一个文件夹/材料对话框用来进行对话。

在Android 4.4.4上:

Android 4.4.4

在Android 5.1.1上:

Android 5.1.1

材料devise圆形中间进度条https://gist.github.com/castorflex/4e46a9dc2c3a4245a28e这是一个很棒的实现。; 实现只有缺乏能力添加各种颜色,如在Android应用程序的收件箱,但这是一个相当不错的工作。

除了cozeJ4的回答外,这里还有这个要点的更新版本

原来的一个缺乏import,还有一些错误。 这一个准备好使用。

该平台使用vector绘制,所以你不能像旧版本那样重用它。
然而,支持lib v4包含这个可绘制的backport: http : //androidxref.com/5.1.0_r1/xref/frameworks/support/v4/java/android/support/v4/widget/MaterialProgressDrawable.java它有一个@hide注释(这里是SwipeRefreshLayout),但是没有任何东西阻止你在代码库中复制这个类。

正在寻找一种方法来做到这一点使用简单的xml ,但找不到任何有用的答案,所以想出了这一点。

这也适用于棒棒糖的版本,非常接近材料devise进度条。 你只需要使用这个drawable作为ProgressBar布局中indeterminate drawable

 <?xml version="1.0" encoding="utf-8"?><!--<layer-list>--> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="0" android:toDegrees="360"> <layer-list> <item> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="-90" android:toDegrees="-90"> <shape android:innerRadiusRatio="2.5" android:shape="ring" android:thickness="2dp" android:useLevel="true"><!-- this line fixes the issue for lollipop api 21 --> <gradient android:angle="0" android:endColor="#007DD6" android:startColor="#007DD6" android:type="sweep" android:useLevel="false" /> </shape> </rotate> </item> <item> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="0" android:toDegrees="270"> <shape android:innerRadiusRatio="2.6" android:shape="ring" android:thickness="4dp" android:useLevel="true"><!-- this line fixes the issue for lollipop api 21 --> <gradient android:angle="0" android:centerColor="#FFF" android:endColor="#FFF" android:startColor="#FFF" android:useLevel="false" /> </shape> </rotate> </item> </layer-list> </rotate> 

在ProgressBar中设置上面的drawable如下:

  android:indeterminatedrawable="@drawable/above_drawable"