如何在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" />
效果如下所示:
我已经将三个Material Design progress drawable移植到了Android 4.0中,可以用来作为常规ProgressBar
replace,外观完全相同。
这些drawable还支持着色API(和RTL支持),并使用?colorControlActivated
作为默认色调。 为了方便,还引入了扩展ProgressBar
MaterialProgressBar
小部件。
DreaminginCodeZH / MaterialProgressBar
这个项目也被一个文件夹/材料对话框用来进行对话。
在Android 4.4.4上:
在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"