zoukankan      html  css  js  c++  java
  • 自定义ProgressBar的加载效果

    三种方式实现自定义圆形页面加载中效果的进度条

    To get a ProgressBar in the default theme that is to be used on white/light back ground, use one of the inverse styles:
    <ProgressBar style="@android:style/Widget.ProgressBar.Inverse"/>
    <ProgressBar style="@android:style/Widget.ProgressBar.Large.Inverse"/>
    <ProgressBar style="@android:style/Widget.ProgressBar.Small.Inverse"/>

    进度条
    Xml代码 复制代码 收藏代码
    1. <ProgressBar android:layout_width="fill_parent" android:layout_height="wrap_content" style="?android:attr/progressBarStyleHorizontal"  />  
    <ProgressBar android:layout_width="fill_parent" android:layout_height="wrap_content" style="?android:attr/progressBarStyleHorizontal"  />

    一、通过动画实现
    定义res/anim/loading.xml如下:
    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>   
    <?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文件中引用如下:
    Xml代码 复制代码 收藏代码
    1. <ProgressBar  
    2.   android:layout_width="wrap_content"    
    3. android:layout_height="wrap_content"  
    4.   android:indeterminate="false"    
    5. android:indeterminateDrawable="@anim/loading" />  
    <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代码 复制代码 收藏代码
    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>  
    <?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文件中引用如下:
    Xml代码 复制代码 收藏代码
    1. <ProgressBar  
    2.   android:layout_width="wrap_content"    
    3. android:layout_height="wrap_content"  
    4.   android:indeterminate="false" android:indeterminateDrawable="@drawable/dialog_style_xml_color" />  
    <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代码 复制代码 收藏代码
    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"    
    6. android:toDegrees="360.0"    
    7. android:pivotX="50.0%"  
    8.    android:pivotY="50.0%" />  
    9. </item>  
    10. </layer-list>  
    <?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文件中引用如下:
    Xml代码 复制代码 收藏代码
    1. <ProgressBar  
    2.   android:layout_width="wrap_content"    
    3. android:layout_height="wrap_content"  
    4.   android:indeterminate="false" android:indeterminateDrawable="@drawable/dialog_style_xml_icon" />  
    <ProgressBar
      android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
      android:indeterminate="false" android:indeterminateDrawable="@drawable/dialog_style_xml_icon" />
    


    或者使用<animated-rotate/>旋转一张图片:
    Xml代码 复制代码 收藏代码
    1. <ProgressBar     
    2.         style="@android:style/Widget.ProgressBar"     
    3.         android:layout_width="wrap_content"     
    4.         android:layout_height="wrap_content"     
    5.         android:indeterminateDrawable="@drawable/custom_progress_draw"     
    6.         android:indeterminate="false" />  
    <ProgressBar  
            style="@android:style/Widget.ProgressBar"  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:indeterminateDrawable="@drawable/custom_progress_draw"  
            android:indeterminate="false" />
    

    custom_progress_draw.xml:
    Xml代码 复制代码 收藏代码
    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"  
    3.     android:drawable="@drawable/circular"  
    4.     android:pivotX="50%"  
    5.     android:pivotY="50%" />  
    <?xml version="1.0" encoding="utf-8"?>
    <animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
        android:drawable="@drawable/circular"
        android:pivotX="50%"
        android:pivotY="50%" />
    

    circular就是一张转动效果的静态图片。

    main.xml如下:
    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>  
    <?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进度样式源码
    http://www.eoeandroid.com/code/2012/0711/1851.html
    • 大小: 12.9 KB
  • 相关阅读:
    【2018.05.05 C与C++基础】C++中的自动废料收集:概念与问题引入
    【2018.04.27 C与C++基础】关于switch-case及if-else的效率问题
    【2018.04.19 ROS机器人操作系统】机器人控制:运动规划、路径规划及轨迹规划简介之一
    March 11th, 2018 Week 11th Sunday
    March 10th, 2018 Week 10th Saturday
    March 09th, 2018 Week 10th Friday
    March 08th, 2018 Week 10th Thursday
    March 07th, 2018 Week 10th Wednesday
    ubantu之Git使用
    AMS分析 -- 启动过程
  • 原文地址:https://www.cnblogs.com/wangluochong/p/4238842.html
Copyright © 2011-2022 走看看