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%" />
  • 相关阅读:
    【题解】【BT】【Leetcode】Populating Next Right Pointers in Each Node
    【题解】【BT】【Leetcode】Binary Tree Level Order Traversal
    【题解】【BST】【Leetcode】Unique Binary Search Trees
    【题解】【矩阵】【回溯】【Leetcode】Rotate Image
    【题解】【排列组合】【素数】【Leetcode】Unique Paths
    【题解】【矩阵】【回溯】【Leetcode】Unique Paths II
    【题解】【BST】【Leetcode】Validate Binary Search Tree
    【题解】【BST】【Leetcode】Convert Sorted Array to Binary Search Tree
    第 10 章 判断用户是否登录
    第 8 章 动态管理资源结合自定义登录页面
  • 原文地址:https://www.cnblogs.com/harry335/p/4555277.html
Copyright © 2011-2022 走看看