• 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() 是用来获取其它进度条的进度值


  • 相关阅读:
    爬虫之爬取网贷之家在档P2P平台基本数据并存入数据库
    Python抓取第一网贷中国网贷理财每日收益率指数
    div左右布局
    IIS7.0+SqlServer2012,进行.net网站发布的安装全过程
    SpringMVC+Mybatis+Mysql实战项目学习环境搭建
    文本框字符长度动态统计
    html里面自定义弹出窗口
    windows下取linux系统里面的文件
    网页中的电话号码实现一键直呼
    测试
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4308747.html
Copyright © 2020-2023  润新知