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 75 新闻列表页面
    android 74 下载文本
    android 73 下载图片
    android 72 确定取消对话框,单选对话框,多选对话框
    android 71 ArrayAdapter和SimpleAdapter
    android 70 使用ListView把数据显示至屏幕
    maven如何将本地jar安装到本地仓库
    Centos6.7搭建ISCSI存储服务器
    解决maven打包编译出现File encoding has not been set问题
    MySQL 解决 emoji表情 的方法,使用utf8mb4 字符集(4字节 UTF-8 Unicode 编码)
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4308747.html
Copyright © 2011-2022 走看看