zoukankan      html  css  js  c++  java
  • 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%" />
  • 相关阅读:
    Protocol handler start failedCaused by: java.net.SocketException: Permission denied
    springboot无法获取证书内容
    IDEA中使用git合并分支的过程报错:cant checkout because of unmerged files
    IDEA中使用git报错Permission denied (publickey)
    linux常用的操作命令
    启动Tomcat报错:A child container failed during start
    linux下搭建redis内网端口映射工具-rinetd
    linux(centos)下安装supervisor进程管理工具
    SDBCI-WRCF2020-MI赛题成绩回顾
    Google搜索技巧
  • 原文地址:https://www.cnblogs.com/harry335/p/4555277.html
Copyright © 2011-2022 走看看