转载:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=76872

一、通过动画实现

定义res/anim/loading.xml如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <animation-list android:oneshot="false"
  3. xmlns:android="http://schemas.android.com/apk/res/android">
  4. <item android:duration="150" android:drawable="@drawable/loading_01" />
  5. <item android:duration="150" android:drawable="@drawable/loading_02" />
  6. <item android:duration="150" android:drawable="@drawable/loading_03" />
  7. <item android:duration="150" android:drawable="@drawable/loading_04" />
  8. <item android:duration="150" android:drawable="@drawable/loading_05" />
  9. <item android:duration="150" android:drawable="@drawable/loading_06" />
  10. <item android:duration="150" android:drawable="@drawable/loading_07" />
  11. </animation-list>

在layout文件中引用如下:

  1. <ProgressBar android:id="@+id/loading_process_dialog_progressBar"
  2. android:layout_width="wrap_content" android:layout_height="wrap_content"
  3. android:indeterminate="false" android:indeterminateDrawable="@anim/loading" />

二、通过自定义颜色实现
定义res/drawable/dialog_style_xml_color.xml如下:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <rotate xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:pivotX="50%" android:pivotY="50%" android:fromDegrees="0"
  4. android:toDegrees="360">
  5. <shape android:shape="ring" android:innerRadiusRatio="3"
  6. android:thicknessRatio="8" android:useLevel="false">
  7. <gradient android:type="sweep" android:useLevel="false"
  8. android:startColor="#FFFFFF" android:centerColor="#FFDC35"
  9. android:centerY="0.50" android:endColor="#CE0000" />
  10. </shape>
  11. </rotate>

在layout文件中引用如下:

  1. <ProgressBar android:id="@+id/loading_process_dialog_progressBar"
  2. android:layout_width="wrap_content" android:layout_height="wrap_content"
  3. android:indeterminate="false" android:indeterminateDrawable="@drawable/dialog_style_xml_color" />

三、使用一张图片进行自定义
定义res/drawable/dialog_style_xml_icon.xml如下:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  3. <item>
  4. <rotate android:drawable="@drawable/dialog_progress_round"
  5. android:fromDegrees="0.0" android:toDegrees="360.0" android:pivotX="50.0%"
  6. android:pivotY="50.0%" />
  7. </item>
  8. </layer-list>

在layout文件中引用如下:

  1. <ProgressBar android:id="@+id/loading_process_dialog_progressBar"
  2. android:layout_width="wrap_content" android:layout_height="wrap_content"
  3. android:indeterminate="false" android:indeterminateDrawable="@drawable/dialog_style_xml_icon" />

main.xml如下:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical" android:layout_width="fill_parent"
  4. android:layout_height="fill_parent" android:gravity="center"
  5. android:background="#FFF">
  6. <Button android:text="@string/anim" android:id="@+id/anim"
  7. android:layout_width="120dip" android:layout_height="wrap_content" />
  8. <Button android:text="@string/color" android:id="@+id/color"
  9. android:layout_width="120dip" android:layout_height="wrap_content" />
  10. <Button android:text="@string/icon" android:id="@+id/icon"
  11. android:layout_width="120dip" android:layout_height="wrap_content" />
  12. </LinearLayout>

之后通过三个按钮将ProgressBar 放在对话框中显示出来就完成了。

 AnimRoundProcessDialog.rar

截图如下:

Android 三种方式实现自定义圆形页面加载中效果的进度条的更多相关文章

  1. Android 三种方式实现自定义圆形进度条ProgressBar

    一.通过动画实现 定义res/anim/loading.xml如下: <?xml version="1.0" encoding="UTF-8"?> ...

  2. 三种方式解决你的js加载乱码

    第一种方式——编码统一 我们以前觉得出现乱码的原因是因为编码不统一,就是因为我们设置编码统一之后,就解决了问题,所以,让html和js的编码统一,是最简单的一个乱码解决方式,原因是什么,是因为,如果你 ...

  3. 【Android进度条】三种方式实现自定义圆形进度条ProgressBar

    一.通过动画实现 定义res/anim/loading.xml如下: <?xml version="1.0" encoding="UTF-8"?> ...

  4. jQuery8种不同的瀑布流懒加载loading效果

    优化图片加载插件jQuery8种不同的瀑布流懒加载loading效果  在线预览 下载地址 实例代码 <ul class="grid effect-1" id="g ...

  5. css 实现页面加载中等待效果

    <!DOCTYPE html> <html> <head> <title>css实现页面加载中,请稍候效果</title> <meta ...

  6. 利用document的readyState去实现页面加载中的效果

    打开新的网页时,为了增强友好性体验,告知用户网页正在加载数据需要呈现一个"页面加载中"之类的提示,只需要利用document就可以实现. 实现示例代码如下: <style&g ...

  7. 页面加载中jquery逐渐消失效果实现

    为了获得更好的用户体验,现在大多数网页都会在页面中加一个加载中效果,这里实现一个加载中逐渐消失的效果,以至于看上去不那么生硬. html: <div id="loading" ...

  8. 三种思路实现自定义404页面:Tomcat、SpringMVC精准匹配、重写DispatchServlet

    第1种方式:Tomcat直接处理 web.xml <error-page> <error-code>404</error-code> <location> ...

  9. 三种方式创建bean对象在springIOC容器中初始化、销毁阶段要调用的自定义方法

    1. 使用@Bean注解定义initMethod和destroyMethod 所谓initMethod和destroyMethod,是指在springIOC容器中,对于bean对象执行到初始化阶段和销 ...

随机推荐

  1. ERP仓库管理系统(九)

    需求分析: 1.设计库房表,至少包括两个字段,库房名称,库房所属公司的ID(在客户资质审批表中找到对应公司的ID) 2.设计增.删.改.查一套程序,其中的删除要做限制,只要有库存数据存在则不允许删除对 ...

  2. iOS ARC和MRC混编

    如果一个工程为MRC,其中需要添加ARC的文件: 选择target  ->  build phases  ->  compile sources  ->单击ARC的文件将compil ...

  3. IOS 作业项目(2) 画图(保存,撤销,笔粗细设定功能)

    先上效果图

  4. Qt Charts示例

    Qt 5.7 有一些变化,把原来商业版的几个模块用GPLv3协议放到了社区版本里: Qt Charts (GPLv3) Qt Data Visualization (GPLv3) Qt Virtual ...

  5. 使用SSMS 2014将本地数据库迁移到Azure SQL Database

    使用SQL Server Management Studio 2014将本地数据库迁移到Azure SQL Database的过程比较简单,在SSMS2014中,有一个任务选项为“将数据库部署到Win ...

  6. 为AM335x移植Linux内核主线代码

    /********************************************************************** * 为AM335x移植Linux内核主线代码 * 说明: ...

  7. Python3 ORM hacking

    #!/usr/bin/env python3 # -*- coding: utf- -*- # # Python3 ORM hacking # 说明: # 之前分析了一个Python2 ORM的源代码 ...

  8. 使用ingress qdisc和ifb进行qos

    ifb   The Intermediate Functional Block device is the successor to the IMQ iptables module that was ...

  9. 【转】论创新工场、职业发展、offer如何比较选择、移动互联网

    大纲:一.缘由.概述二.创新工场的模式三.职业发展道路的影响因素四.职业选择的几个小问题五.李开复的移动互联网和我眼中的移动互联网六.再见和祝福 一.缘由.概述1.缘由        前两周,有个师弟 ...

  10. 冒泡排序(C++版)

    /** Bubble Sort * * Key * * position: where swap * * iter: sub-position in each trip * */ template & ...