zoukankan      html  css  js  c++  java
  • ProgressBar样式总结与自己主动填充方法(代码)

    有时候开发的时候须要用一个进度条告知用户眼下正在执行一个耗时操作,可是并不须要明白知道某个value来setProgress,所以就能够自己定义一个时间和进度让进度条自己主动执行了。

    以下是代码:

     Handler mHandler=new Handler(){
    
            @Override
            public void handleMessage(Message msg) {
               
                p.setProgress(msg.what);
                mHandler.post(updateThread);//实现连续过程
            }
            
        };
        Runnable updateThread=new Runnable() {
            int i=0;
            @Override
            public void run() {
               
                Message m=Message.obtain();
                if(i<70){
                    i=i+2;
                }
               
                   m.what=i;
                    try {
                     Thread.sleep(1);//间隔时间
                 } catch (InterruptedException e) {
                     
                     e.printStackTrace();
                 }
                    mHandler.sendMessage(m);
                    if(i==70)
                    {
                       mHandler.removeCallbacks(updateThread);
    return;//退出
                    }
                }
            }
        ;


    
    

    普通圆形ProgressBar该类型进度条也就是一个表示运转的过程,比如发送短信,连接网络等等,表示一个过程正在运行中。一般仅仅要在XML布局中定义就能够了。

    <progressBar android:id="@+id/widget43"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"   
          android:layout_gravity="center_vertical">
    </ProgressBar>

    此时,没有设置它的风格,那么它就是圆形的,一直会旋转的进度条。
    各大小样式圆形ProgressBar
    超大号圆形ProgressBar

    此时,给设置一个style风格属性后,该ProgressBar就有了一个风格,这里大号ProgressBar的风格是:

    style="?android:attr/progressBarStyleLarge"

    完整XML定义是:

    <progressBar android:id="@+id/widget196"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          style="?android:attr/progressBarStyleLarge">
    </ProgressBar>
    

    小号圆形ProgressBar
    小号ProgressBar相应的风格是:

    style="?android:attr/progressBarStyleSmall"

    完整XML定义是:

    <progressBar android:id="@+id/widget108"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          style="?android:attr/progressBarStyleSmall">
    </ProgressBar>

    标题型圆形ProgressBar
    标题型ProgressBar相应的风格是:

    style="?android:attr/progressBarStyleSmallTitle"

    完整XML定义是:

    <progressBar android:id="@+id/widget110"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="?android:attr/progressBarStyleSmallTitle">
    </ProgressBar>

    代码中实现:

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
            //请求窗体特色风格,这里设置成不明白的进度风格
            setContentView(R.layout.second);
            setProgressBarIndeterminateVisibility(true);
            //设置标题栏中的不明白的进度条能否够显示
        }

    长形进度条
    布局中的长形进度条

    首先在XML进行布局
    <progressBar android:id="@+id/progressbar_updown"
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_gravity="center_vertical"
            android:max="100"
            android:progress="50"
            android:secondaryProgress="70"    >

    解说:

    style="?android:attr/progressBarStyleHorizontal"    设置风格为长形 
    android:max="100"    最大进度值为100
    android:progress="50"   初始化的进度值
    android:secondaryProgress="70"  初始化的底层第二个进度值 
    android:layout_gravity="center_vertical"    垂直居中

    代码中运用

    private ProgressBar myProgressBar;
    //定义ProgressBar
    myProgressBar = (ProgressBar) findViewById(R.id.progressbar_updown);
    //ProgressBar通过ID来从XML中获取
    myProgressBar.incrementProgressBy(5);
    //ProgressBar进度值添加5
    myProgressBar.incrementProgressBy(-5);
    //ProgressBar进度值降低5
    myProgressBar.incrementSecondaryProgressBy(5);
    //ProgressBar背后的第二个进度条 进度值添加5
    myProgressBar.incrementSecondaryProgressBy(-5);
    //ProgressBar背后的第二个进度条 进度值降低5

    页面标题中的长形进度条
    代码实现:
    ①先设置一下窗体风格特性

    requestWindowFeature(Window.FEATURE_PROGRESS);
    //请求一个窗体进度条特性风格
    setContentView(R.layout.main);
    setProgressBarVisibility(true);
    //设置进度条可视

    ②然后设置进度值

    setProgress(myProgressBar.getProgress() * 100);
    //设置标题栏中前景的一个进度条进度值
    setSecondaryProgress(myProgressBar.getSecondaryProgress() * 100);
    //设置标题栏中后面的一个进度条进度值
    //ProgressBar.getSecondaryProgress() 是用来获取其它进度条的进度值


  • 相关阅读:
    Android 6.0权限
    从最简单的HelloWorld理解MVP模式
    DataSet、DataTable和DataGridView知识备忘
    Windows 窗体启动和关闭的事件顺序
    VB二进制文件读写
    C#操作符的重载
    虚方法(virtual)和抽象方法(abstract)的区别
    我的前端页面开发js简易有效环境
    css properties
    css属性值语法解读
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4308747.html
Copyright © 2011-2022 走看看