关键词:
【中文标题】如何在android中实现材料设计圆形进度条【英文标题】:How to implement a material design circular progress bar in android 【发布时间】:2015-01-05 01:04:38 【问题描述】:我想制作一个类似于 Inbox by Gmail android 应用中的 Material Design 圆形进度条。我如何实现这一点(在棒棒糖之前的设备中)?
我正在尝试实现类似的效果。 Inbox by Gmail material design circular progress bar
【问题讨论】:
github.com/passsy/android-HoloCircularProgressBar 帮助你的完整链接github.com/Sefford/CircularProgressDrawable 按照Prajwal 的建议,尝试使用 Mohammed AG 提供的 xposed 模块平滑系统进度条。 @Zapnologica 他们的示例仅适用于 android 棒棒糖设备,加载微调器内置于棒棒糖中,但我正在寻找或方法将其移植回较低的 android 版本 @cozeJ4 我希望支持库能够提供这样的东西。 【参考方案1】:<ProgressBar
android:id="@+id/loading_spinner"
android:layout_
android:layout_
android:indeterminateTintMode="src_atop"
android:indeterminateTint="@color/your_customized_color"
android:layout_gravity="center" />
效果如下:
【讨论】:
这不适用于棒棒糖之前的设备。 Pre Lollipop 设备使用不同的旋转drawable【参考方案2】:材料设计圆形进度条的不错实现(来自rahatarmanahmed/CircularProgressView),
<com.github.rahatarmanahmed.cpv.CircularProgressView
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/progress_view"
android:layout_
android:layout_
app:cpv_indeterminate="true"/>
【讨论】:
嗨 Fahim,你所说的 Native progressBar 是什么意思?那是来自Android平台吗?我想实现相同类型的对话框,如果它可以从 android 本身或任何支持库中获得,效果会更好。 @cgr Native ProgressBar 是使用 Android SDK 实现的进度条。如果您在两个具有不同 Android 风格的设备(例如:Jelly Beans 和 Lollipop)上运行此应用程序,您将看到不同的进度条。自己试试吧。 超级简单,谢谢。添加不透明背景颜色的最佳方法是什么?就像我想在一个更大的白色背景圆圈上做一个带有黑色圆弧圈的 gmail 类型的指示器?【参考方案3】:我已将三个 Material Design 进度可绘制对象向后移植到 Android 4.0,它可以用作常规 ProgressBar
的直接替代品,外观完全相同。
这些可绘制对象还向后移植了着色 API(和 RTL 支持),并使用 ?colorControlActivated
作为默认着色。为方便起见,还引入了扩展 ProgressBar
的 MaterialProgressBar
小部件。
DreaminginCodeZH/MaterialProgressBar
该项目也已被afollestad/material-dialogs 用于进度对话框。
在 Android 4.4.4 上:
在 Android 5.1.1 上:
【讨论】:
感谢您的所有努力!很棒的图书馆!坚持下去! 非常优雅的解决方案,在我看来是最好的解决方案 感谢图书馆!有没有办法改变微调器的颜色? @Roymunson 查看自述文件和关于 app:mpb_progressTint 等的段落【参考方案4】:更新
截至 2019 年,这可以使用 Material Components 库中的 ProgressIndicator
轻松实现,与 Widget.MaterialComponents.ProgressIndicator.Circular.Indeterminate
样式一起使用。
更多详情请查看 Gabriele Mariotti's 下面回答。
旧实现
这里是材料设计圆形中间进度条https://gist.github.com/castorflex/4e46a9dc2c3a4245a28e 的一个很棒的实现。该实现仅缺乏通过 android 应用程序在收件箱中添加各种颜色的能力,但这做得非常好。
【讨论】:
【参考方案5】:通过材料组件库,您可以使用CircularProgressIndicator
:
类似:
<com.google.android.material.progressindicator.CircularProgressIndicator
android:indeterminate="true"
android:layout_
android:layout_
app:indicatorColor="@array/progress_colors"
app:indicatorSize="xxdp"
app:indeterminateAnimationType="contiguous"/>
array/progress_colors
是一个包含颜色的数组:
<integer-array name="progress_colors">
<item>@color/yellow_500</item>
<item>@color/blue_700</item>
<item>@color/red_500</item>
</integer-array>
注意:至少需要版本1.3.0
【讨论】:
这个进度条的支持是什么,它在 PreLolipop 上工作吗? @StoychoAndreev 目前 minSdk = 14 Tnx 获取您的代码。但是这个类没有像“circularRadius”和“growMode”这样的属性。如果存在,请纠正我。 @GabrieleMariotti 再次感谢您的编辑。我想建议编辑,但不允许编辑答案。 @Web。检查此链接:developer.android.com/guide/topics/resources/…【参考方案6】:除了 cozeJ4 的 答案,这里是updated version of that gist
原始版本缺少导入并包含一些错误。这个可以使用了。
【讨论】:
您能解释一下我们如何使用它吗? 复制这些类,将包更改为项目的包,并在布局中使用 MaterialProgressBar 作为视图,仅此而已 但我想在异步任务结束时显示这个,pro.bar aiso 必须完成。 哇!多谢,伙计。使用 com.rey.material 库使我免于许多麻烦。 你也有线性版本吗?【参考方案7】:该平台使用矢量可绘制对象,因此您不能像在旧版本中那样重复使用它。
但是,支持 lib v4 包含此可绘制对象的反向移植:
http://androidxref.com/5.1.0_r1/xref/frameworks/support/v4/java/android/support/v4/widget/MaterialProgressDrawable.java
它有一个 @hide
注释(这里是 SwipeRefreshLayout),但没有什么能阻止你在代码库中复制这个类。
【讨论】:
好吧,现在我们有了 VectorDrawableCompat,你也许可以重复使用同一个 drawable【参考方案8】:正在寻找一种使用简单的xml
的方法,但找不到任何有用的答案,所以想出了这个。
这也适用于棒棒糖之前的版本,并且非常接近材料设计进度条。你只需要在ProgressBar
布局中使用这个drawable
作为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"
【讨论】:
未知属性 android:indeterminatedrawable 动画完全不同。如何只实现一个圆形进度条,直到图像被滑动加载
】如何只实现一个圆形进度条,直到图像被滑动加载【英文标题】:Howtoimplementonlyonecircularprogressbaruntilimagesareloadedwithglide【发布时间】:2021-08-2406:49:15【问题描述】:您好,我只想实现一个圆形进度动画,直到从滑行加载图像,... 查看详情
如何在Android中创建一个在其上旋转的圆形进度条?
】如何在Android中创建一个在其上旋转的圆形进度条?【英文标题】:HowtoCreateacircularprogressbarinAndroidwhichrotatesonit?【发布时间】:2014-02-1512:25:24【问题描述】:我正在尝试创建一个圆形进度条。这就是我想要实现的目标有一个灰... 查看详情
java示例代码_在Android 2.1中实现圆形标签+
java示例代码_在Android 2.1中实现圆形标签+ 查看详情
linux中实现一个简单的进度条
转自:http://blog.csdn.net/yuehailin/article/details/53999288说起进度条,其实大家常常见到,比如说你在下载视频或文件的时候,提示你当前下载进度的就是我们今天要说的进度条,进度条的模拟实现是挺简单的,但是要做的比较实用还... 查看详情
如何更改圆形进度条的颜色?
...gressbar?【发布时间】:2011-07-1707:03:54【问题描述】:我在Android上使用循环进度条。我想改变它的颜色。我正在使用"?android:attr/progressBarStyleLargeInverse"风格。那么如何改变进度条的颜色呢。如何自定义样式?另外,风格的定义是什... 查看详情
如何在反应材料-ui自动完成中实现最小字符长度功能
】如何在反应材料-ui自动完成中实现最小字符长度功能【英文标题】:Howtoachieveminimumcharacterlengthfeatureinreactmaterial-ui\'sautocomplete【发布时间】:2017-10-1319:33:45【问题描述】:我想在reactmaterial-uiautocomplete组件中实现“最小字符长度... 查看详情
如何结合这些命令在 ImageMagick 中实现圆形裁剪?
】如何结合这些命令在ImageMagick中实现圆形裁剪?【英文标题】:HowcanIcombinethesecommandstoachievecircularcropinImageMagick?【发布时间】:2017-01-3113:55:12【问题描述】:所以这个命令有效:convert-size200x200xc:none-fillsamia.jpg-draw"circle100,100100,1"... 查看详情
如何在 iPhone 应用程序中实现半圆形按钮
】如何在iPhone应用程序中实现半圆形按钮【英文标题】:HowcanIimplementsemicircle-shapedbuttonsiniPhoneapplications【发布时间】:2011-11-0804:23:21【问题描述】:我在Photoshop中设计了一个iPhone应用程序。我将PSD文件转换为PNG格式。我发现很难... 查看详情
如何在角度材料中实现 Sidenav、页眉和页脚?
】如何在角度材料中实现Sidenav、页眉和页脚?【英文标题】:HowtoimplementSidenav,Header&Footerinangularmaterial?【发布时间】:2021-01-1719:54:22【问题描述】:我正在尝试在Angular中使用经典的页眉、页脚和侧边栏导航和AngularMaterial。但... 查看详情
如何在kivy中制作圆形进度条?
】如何在kivy中制作圆形进度条?【英文标题】:Howtomakecircularprogressbarinkivy?【发布时间】:2018-11-0516:04:11【问题描述】:我想用kivy和python制作一个简单的圆形进度条。我搜索了在线文档和GitHub曲目,但没有找到解释循环进度条... 查看详情
如何在iOS中实现矩形UIButton到圆形的漂亮动画?
】如何在iOS中实现矩形UIButton到圆形的漂亮动画?【英文标题】:HowtoimplementniceanimationforrectangleUIButtontocircleshapeiniOS?【发布时间】:2015-09-1105:27:15【问题描述】:当我点击“登录”按钮时,我需要制作我的矩形登录按钮LoginScreensh... 查看详情
我应该如何在角度材料中实现多项选择选项?
】我应该如何在角度材料中实现多项选择选项?【英文标题】:HowamIsupposedtoimplementmultipleselectoptioninangular-material?【发布时间】:2015-04-2317:22:12【问题描述】:我已经检查了文档和演示,但是唉!!我还没有找到任何关于使用angul... 查看详情
如何使用 Swift 在 UIView 中将圆形进度条居中?
】如何使用Swift在UIView中将圆形进度条居中?【英文标题】:HowcanIcentreacircularprogressbarinaUIViewusingSwift?【发布时间】:2020-09-0119:53:23【问题描述】:我很难确保圆形进度条始终位于与其关联的UIView的中心。这是正在发生的事情:... 查看详情
如何重新加载圆形进度条
】如何重新加载圆形进度条【英文标题】:howtoreloadacircularprogressbar【发布时间】:2015-12-0921:59:58【问题描述】:我对画布以及如何创建圆形进度条进行了一些网络搜索,我得到了这个。我对在网上找到的代码片段进行了一些更... 查看详情
如何在matlab中实现灰度形态检测灰度图像上的圆形物体?
】如何在matlab中实现灰度形态检测灰度图像上的圆形物体?【英文标题】:HowtoimplementGrayscalemorphologytodetectroundobjectongrayscaleimageinmatlab?【发布时间】:2016-05-1810:45:34【问题描述】:有许多方法可以在二值图像上实现数学变形,例... 查看详情
如何从对象类型中动态获取值并在扩展面板角材料中实现?
】如何从对象类型中动态获取值并在扩展面板角材料中实现?【英文标题】:HowtodynamicallygetthevaluesfromObjectTypeandimplementinExpansionpanelAngularmaterial?【发布时间】:2020-10-2521:00:24【问题描述】:场景:使用JSON动态显示扩展面板名称和... 查看详情
圆形进度条 Android
】圆形进度条Android【英文标题】:CircularProgressBarAndroid【发布时间】:2015-06-0320:06:35【问题描述】:我想创建一个分段的圆形进度条,其行为类似于倒数计时器,这样每个分段都有自己的时间限制。有一个iOS应用pTimer+,我想在An... 查看详情
如何创建圆形样式进度条
】如何创建圆形样式进度条【英文标题】:HowtocreateaCircularStyleProgressBar【发布时间】:2011-06-1918:24:09【问题描述】:我需要帮助来实现这样的循环进度条:我应该如何通过增加Value属性来实现Circle来填充?【问题讨论】:相关链... 查看详情