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%" />
时间: 2024-10-14 08:51:26

ProgressBar自定义的相关文章

[Android UI] ProgressBar自定义

转载自:http://gundumw100.iteye.com/blog/1289348 1: 在JAVA代码中 在java代码中 ProgressBar      继承自View, 在android.widegt包中 ProgressDialog   继承自Dialog, 在 android.app包中. 2: 在XML文件中 ProgressBar 默认是圆形转圈.当为ProgressBar设置style="?android:attr/progressBarStyleHorizontal&q

【android自定义控件】ProgressBar自定义

ProgressBar分为垂直和水平 经常在数据加载过程中,为了让用户感觉友好,弹出一个提示圆形的加载框 水平的经常在下载应用的时候用到,还伴随着下载进度. ProgressBar的样式有四种: android:progressBarStyle:默认进度条样式,不确定模式 android:progressBarStyleHorizontal:水平进度条样式 android:progressBarStyleLarge :大号进度条样式,也是不确定进度模式 android:progressBarSt

Progressbar自定义大小

1.默认的圆形进度条有点大,自己可以改小一点 (1)引用自定义的style <ProgressBar android:id="@+id/footer_progressbar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="10dp" style="@styl

android progressbar 自定义图片匀速旋转

项目中需要使用圆形进度条进行数据加载的显示,所以需要两个步骤 1:自定义progressbar滚动图片 2:匀速旋转图片 步骤一:自定义progressbar图片 <ProgressBar android:id="@+id/head_progressBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_grav

Android Progressbar自定义菊花效果

项目中需要用到类似IOS的菊花选中效果.有一些app中是使用第三方的git控件来做直接加载一个gif图片,不过我不喜欢这种方式.为了这么点功能就在项目中添加类库总觉得大材小用了.这里直接为progressbar指定加载图片实现同样的效果. 1.首先需要定义在drawble中定义一个旋转动画 <?xml version="1.0" encoding="utf-8"?><animated-rotate xmlns:android="http:

Android 两种自定义ProgressBar

横向的ProgressBar 在res下创建drawable文件夹,新建文件drawable/progressbar_color.xml <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 背景 gradient是渐变,corners定义

android ProgressBar 进度条的进度两端是圆角的方法

转自 http://www.jianshu.com/p/6e7ea842d5ce 另外工作原理可以参考http://blog.csdn.net/lan603168/article/details/44705425 ProgressBar 自定义的时候可能会遇到一个问题,希望进度条中的进度的两端都是圆角的(或者进度的末端是圆角的):如下图: progress bar rounder 但是根据自定义的shape 或者是 layer-list却总是很难做到,几乎都是被clip成了直角的样子: prog

android progressbar 水平进度条

<?xml version="1.0" encoding="UTF-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 定义轨道的背景 --> <item android:id="@android:id/background" android:drawable="@

Android自定义进度条-带文本(文字进度)的水平进度条(ProgressBar)

/** * 带文本提示的进度条 */ public class TextProgressBar extends ProgressBar { private String text; private Paint mPaint; public TextProgressBar(Context context) { super(context); initText(); } public TextProgressBar(Context context, AttributeSet attrs, int d