• ProgressBar自定义


    ProgressBar自定义

    1: 在JAVA代码中

    在java代码中 ProgressBar      继承自View, 在android.widegt包中

                     ProgressDialog   继承自Dialog, 在 android.app包中。

    2: 在XML文件中

    ProgressBar 默认是圆形转圈。
    当为ProgressBar设置style="?android:attr/progressBarStyleHorizontal",后ProgressBar变成水平进度条,可以设置progress 和maxprogress

    ProgressBar 在默认情况下,如果设置其它的style:

    <ProgressBar style="@android:style/Widget.ProgressBar.Inverse"/>                    中等大小
    <ProgressBar style="@android:style/Widget.ProgressBar.Large.Inverse"/>           大
    <ProgressBar style="@android:style/Widget.ProgressBar.Small.Inverse"/>           小

    a: 通过动画实现自定义ProgressBar

    定义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:layout_width="wrap_content" 
      android:layout_height="wrap_content"
      android:indeterminate="false" 
      android:indeterminateDrawable="@anim/loading" />


    b:通过自定义颜色实现

    定义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:fromDegrees="0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toDegrees="360" >
    
        <shape
            android:innerRadiusRatio="3"
            android:shape="ring"
            android:thicknessRatio="8"
            android:useLevel="false" >
            <gradient
                android:centerColor="#FFDC35"
                android:centerY="0.50"
                android:endColor="#CE0000"
                android:startColor="#FFFFFF"
                android:type="sweep"
                android:useLevel="false" />
        </shape>
    
    </rotate>
    复制代码

    在layout文件中引用如下:

    复制代码
    <ProgressBar
            android:id="@+id/progressBar1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignRight="@+id/textView1"
            android:layout_below="@+id/textView1"
            android:indeterminateDrawable="@drawable/dialog_style_xml_color"
            android:indeterminate="false"
    android:indeterminateDuration="1000" android:layout_marginTop="155dp" />
    复制代码

    c、使用一张图片进行自定义

    定义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/dx_loading_dialog_rotate_img"
                android:fromDegrees="0.0"
                android:pivotX="50.0%"
                android:pivotY="50.0%"
                android:toDegrees="360.0" />
        </item>
    
    </layer-list>
    复制代码


    在layout文件中引用如下:

    <ProgressBar
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content"
       android:indeterminate="false" android:indeterminateDrawable="@drawable/dialog_style_xml_icon" />

    d: <animated-rotate/>旋转一张图片:

    res/drawable/custom_progress_draw.xml:

    <?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%" />
    <?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%" />
  • 相关阅读:
    如何成为一名数据科学家
    暑假反思
    暑假计划(7月23日-8月21日)
    ACM数论模板
    Nelder–Mead method
    Introduction to Data Mining
    51_1037最长循环节 (miller rabin算法 pollard rho算法 原根)
    乘法逆元(转)
    51_1228 序列求和(伯努利数)(转)
    清除input中内容的简单方法
  • 原文地址:https://www.cnblogs.com/harry335/p/4555277.html
Copyright © 2020-2023  润新知