栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

Android开发使用ProgressBar实现进度条功能示例

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android开发使用ProgressBar实现进度条功能示例

本文实例讲述了Android开发使用ProgressBar实现进度条功能。分享给大家供大家参考,具体如下:

进度条ProgressBar的使用主要有两种方向;

1.使用官方默认样式

2.使用自定义样式

先看效果:

详细代码实现文末给出

关于系统自带样式:

在 style="@android:style 中有许多系统自带样式,大家可以更具自身喜好选择。

如果不选择 style 系统会默认使用上图中红色的样式。

关于自定义样式:

这里我们最好看看源码 很容易理解

主要分为三个部分:当前进度、缓冲进度、以及背景 三个属性

这里我们通过在drawable里新建my_bar.xml来实现

这里有个注意点 很多人写了xml后发现 直接就显示满进度 而不是缓慢增长

由于是替换系统自带样式,所以id必须与系统保持一致:(如:android:id="@android:id/background")



  
  
  
  


这里对比下系统源码就很好理解了:

这里的模拟方法采用的是线程结合Handler

由于线程不能直接改变控件属性 所以需要用Handler来接受线程发出的Message

具体方法如下:

public class MainActivity extends Activity {
  //记录ProgressBar的完成进度
  private int sum1=0,sum2 = 0 ;
  ProgressBar bar1,bar2;
  //创建一个负责更新进度的Handler
  Handler mHandler = new Handler(){
    @Override
    public void handleMessage(Message msg) {
      //表明消息是本程序发送的
      if (msg.what == 0x111){
 bar1.setProgress(sum1);
 bar2.setProgress(sum2);
      }
    }
  };
  //模拟耗时
  Thread thread = new Thread(){
    @Override
    public void run() {
      while (sum2 < 100){
 //bar1获取完成工作的百分比
 if (sum1 > 100){
   sum1 = 100;
   if (sum2<100){
     sum2 += (int) (Math.random()*25);
   }else {
     sum2 = 100;
     thread.stop();
   }
   sum1=0;
 }else {
   sum1 = sum1 + (int) (Math.random()*25);
 }
 try{
   Thread.sleep(1000);
 }catch (InterruptedException e){
   e.printStackTrace();
 }
 //更新ProgressBar
 mHandler.sendEmptyMessage(0x111);
      }
    }
  };
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    bar1 = (ProgressBar) findViewById(R.id.bar);
    bar2 = (ProgressBar) findViewById(R.id.bar2);
    thread.start();
  }
}

最后在给出布局文件:



  
    
      
    
  
  
    
    
    
    
    
    
  
  
  
  
  
  


更多关于Android相关内容感兴趣的读者可查看本站专题:《Android控件用法总结》、《Android开发入门与进阶教程》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android数据库操作技巧总结》及《Android资源操作技巧汇总》

希望本文所述对大家Android程序设计有所帮助。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/154939.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号