Android 三种方式实现自定义圆形页面加载中效果的进度条
2024-10-18 22:26:36
转载:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=76872
一、通过动画实现
定义res/anim/loading.xml如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <animation-list android:oneshot="false"
- xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:duration="150" android:drawable="@drawable/loading_01" />
- <item android:duration="150" android:drawable="@drawable/loading_02" />
- <item android:duration="150" android:drawable="@drawable/loading_03" />
- <item android:duration="150" android:drawable="@drawable/loading_04" />
- <item android:duration="150" android:drawable="@drawable/loading_05" />
- <item android:duration="150" android:drawable="@drawable/loading_06" />
- <item android:duration="150" android:drawable="@drawable/loading_07" />
- </animation-list>
在layout文件中引用如下:
- <ProgressBar android:id="@+id/loading_process_dialog_progressBar"
- android:layout_width="wrap_content" android:layout_height="wrap_content"
- android:indeterminate="false" android:indeterminateDrawable="@anim/loading" />
二、通过自定义颜色实现
定义res/drawable/dialog_style_xml_color.xml如下:
- <?xml version="1.0" encoding="utf-8"?>
- <rotate xmlns:android="http://schemas.android.com/apk/res/android"
- android:pivotX="50%" android:pivotY="50%" android:fromDegrees="0"
- android:toDegrees="360">
- <shape android:shape="ring" android:innerRadiusRatio="3"
- android:thicknessRatio="8" android:useLevel="false">
- <gradient android:type="sweep" android:useLevel="false"
- android:startColor="#FFFFFF" android:centerColor="#FFDC35"
- android:centerY="0.50" android:endColor="#CE0000" />
- </shape>
- </rotate>
在layout文件中引用如下:
- <ProgressBar android:id="@+id/loading_process_dialog_progressBar"
- android:layout_width="wrap_content" android:layout_height="wrap_content"
- android:indeterminate="false" android:indeterminateDrawable="@drawable/dialog_style_xml_color" />
三、使用一张图片进行自定义
定义res/drawable/dialog_style_xml_icon.xml如下:
- <?xml version="1.0" encoding="utf-8"?>
- <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
- <item>
- <rotate android:drawable="@drawable/dialog_progress_round"
- android:fromDegrees="0.0" android:toDegrees="360.0" android:pivotX="50.0%"
- android:pivotY="50.0%" />
- </item>
- </layer-list>
在layout文件中引用如下:
- <ProgressBar android:id="@+id/loading_process_dialog_progressBar"
- android:layout_width="wrap_content" android:layout_height="wrap_content"
- android:indeterminate="false" android:indeterminateDrawable="@drawable/dialog_style_xml_icon" />
main.xml如下:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical" android:layout_width="fill_parent"
- android:layout_height="fill_parent" android:gravity="center"
- android:background="#FFF">
- <Button android:text="@string/anim" android:id="@+id/anim"
- android:layout_width="120dip" android:layout_height="wrap_content" />
- <Button android:text="@string/color" android:id="@+id/color"
- android:layout_width="120dip" android:layout_height="wrap_content" />
- <Button android:text="@string/icon" android:id="@+id/icon"
- android:layout_width="120dip" android:layout_height="wrap_content" />
- </LinearLayout>
之后通过三个按钮将ProgressBar 放在对话框中显示出来就完成了。
截图如下:
最新文章
- Angular2入门系列教程4-服务
- nodejs中使用RabbitMq消息中心系统的方式
- TPS04-J. 使用线程池时确保ThreadLocal变量每次都初始化
- jQuerySchool
- Matlab 支持向量机(SVM)实现多分类
- LBS地理位置距离计算方法之geohash算法
- oracle 两表数据对比---minus
- [C#]设计模式-工厂方法-创建型模式
- 【伯乐在线】Java线程面试题 Top 50
- linux 常见命令及说明杂记
- ibufds原语
- PHP----------linux下安装opcache.
- 软工作业PSP与单元测试训练:java语言判断电子邮箱格式
- Eclipse报错:!!MESSAGE Job found still running.......
- 持续集成 自动化构建、测试、部署您的Coding代码
- JAVA Swing使用JFreeChart实现折线图绘制
- Kylin 与 Spark SQL相比,有哪些差异和优势
- 【5】JMicro微服务-熔断降级
- 静默方式安装10g数据库软件+升级patch+手工建库
- 苹果IPad客户端安装测试软件
热门文章
- 学习笔记:iPhone终极指南、手机端、浏览器各种规范
- 9、SQL基础整理(两表连接exists,join on,union)
- CSS基础:text-overflow:ellipsis溢出文本
- What Controls are new for windows phone 8.1
- 动画(Animation) 、 高级动画(Core Animation)
- 转:SSL协议详解
- json-c-0.9 的简单用法
- C++学习笔记15:操作符重载的函数原型列表(推荐)
- win live
- TNF-mutithread 编译过程记录