游戏技术文章

安卓高级组件-----进度条

时间:2017-3-1 20:19:35  作者:棋牌资源网  来源:棋牌资源网  查看:8848  评论:0
内容摘要:     进度条组件是安卓重要组件之一。当后台某个程序执行时,前台进度条动态显示了程序执行进度的百分比。是耗时较长的程序让用户觉得在自己的掌控之中,提高程序的友好型。       ...
     进度条组件是安卓重要组件之一。当后台某个程序执行时,前台进度条动态显示了程序执行进度的百分比。是耗时较长的程序让用户觉得在自己的掌控之中,提高程序的友好型。

        安卓支支持几种风格的进度条,能通过style属性呢设置进度条风格,该属性如下:

        @android:style/Widget.ProgressBar.Horizontal    水平进度条

        @android:style/Widget.ProgressBar.Inverse        普通环形进度条

        @android:style/Widget.ProgressBar.Large           大环形进度条

        @android:style/Widget.ProgressBar.Large.Inverse   大环形进度条

        @android:style/Widget.ProgressBar.Small            小环形进度条

        @android:style/Widget.ProgressBar.Small.Inverse   小环形进度条

        同时,进度条在xml文件中还要如下属性:

        android:max          设置进度条最大值

        android:rpogress    指定进度条已经完成的进度值

        android:ProgressDrawable     指定进度条轨道的绘制形式

进度条组件有两个最常用的方法:setProgress()设置进度条已经完成的进度;incrementProgressBy()设置进度条进度增加或减少;参数是正数时增加,负数减少;

实例操作:下面我们实现视屏进度条和环形进度条

1.新建工程,在布局中添加两个进度条,一个为环形一个水平进度条

复制代码
            <ProgressBar
            android:id="@+id/progressBar1"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_gravity="center_horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:max="100"
            android:layout_weight="1" />

        <ProgressBar
            android:id="@+id/progressBar2"
            style="?android:attr/progressBarStyleSmall"
            android:layout_gravity="center_horizontal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
复制代码

2.主活动中获取进度条,定义一个进度变量和消息处理Handler类对象

复制代码
        hp = (ProgressBar)findViewById(R.id.progressBar1);
        cp = (ProgressBar)findViewById(R.id.progressBar2);
        h = new Handler(){

            @Override
            public void handleMessage(Message msg) {
                if(msg.what == 0x11){
                    hp.setProgress(progress);
                }else {
                    Toast.makeText(MainActivity.this, "耗时完成", Toast.LENGTH_SHORT).show();        }
                    hp.setVisibility(View.GONE);
                    cp.setVisibility(View.GONE);                    
            }            
        };
复制代码

3.通过匿名内部类实例化消息处理Handler类对象,重写handlerMessage()方法。耗时没有完成时更新进度,耗时完成之后出现提示

复制代码
    h = new Handler(){

        public void handleMessage(Message msg) {
            if(msg.what == 0x11){
                hp.setProgress(progress);
            }else {
                Toast.makeText(MainActivity.this, "耗时完成", Toast.LENGTH_SHORT).show();        }
                hp.setVisibility(View.GONE);
                cp.setVisibility(View.GONE);                    
        }            
    }
复制代码

4.开启线程耗时,sendMessage()发送处理消息

复制代码
        new Thread(new Runnable() {
            
            @Override
            public void run() {
                while(true){
                    progress = doWork();
                    Message m = new Message();
                    if(progress <= 100){
                        m.what = 0x11;
                        h.sendMessage(m);
                    }else {
                        m.what = 0x10;
                        h.sendMessage(m);
                        break;
                    }
                }
                
            }
            
            private int doWork(){
                progress += Math.random()*10;
                try {
                    Thread.sleep(2000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                return progress;
            }
        }).start();
复制代码

运行代码,可以看到环形进度条和水平进度条更新。

标签:安卓高级组件进度条 

欢迎加入VIP,【VIP售价:只要288元永久VIP会员】畅享商业棋牌游戏程序下载,点击开通!

下载说明


☉本站所有源码和资源均由站长亲自测试-绝对保证都可以架设,运营!
☉如源码和资源有损坏或所有链接均不能下载,请告知管理员,

☉本站软件和源码大部分为站长独资,资源购买和收集,放心下载!

☉唯一站长QQ:1004003180  [人格担保-本站注重诚信!]

☉购买建议E-mail:1004003180@qq.com   源码收购 E-mail:1004003180@qq.com    

☉本站文件解压密码  【文章内都自带解压密码,每个密码不同!】


本站提供的所有源码,均来源站长提供,仅学习交流 浙ICP备09009969号

由此产生不良后果和法律责任与本站无关,如果侵犯了您的版权,请来信告知 1004003180@qq.com 将及时更正和删除! 

Copyright © 2008-2024 棋牌资源网,你身边的棋牌资源下载站    All Rights Reserved