android基础进度条原理

简介:

下面详细介绍ProgressBar

一、说明

  在某些操作的进度中的可视指示器,为用户呈现操作的进度,还它有一个次要的进度条,用来显示中间进度,如在流媒体播放的缓冲区的进度。一个进度条也可不确定其进度。在不确定模式下,进度条显示循环动画。这种模式常用于应用程序使用任务的长度是未知的。

二、XML重要属性

    android:progressBarStyle:默认进度条样式

    android:progressBarStyleHorizontal:水平样式

 

三、重要方法

    getMax():返回这个进度条的范围的上限

    getProgress():返回进度

    getSecondaryProgress():返回次要进度

    incrementProgressBy(int diff):指定增加的进度

    isIndeterminate():指示进度条是否在不确定模式下

    setIndeterminate(boolean indeterminate):设置不确定模式下

    setVisibility(int v):设置该进度条是否可视

四、重要事件

    onSizeChanged(int w, int h, int oldw, int oldh):当进度值改变时引发此事件

 
  1. 看一下实现代码 
  2.  
  3. package com.smart; 
  4.  
  5. import java.util.Timer; 
  6. import java.util.TimerTask; 
  7.  
  8. import android.app.Activity; 
  9. import android.os.Bundle; 
  10. import android.os.Handler; 
  11. import android.os.Message; 
  12. import android.widget.ProgressBar; 
  13.  
  14. public class Main extends Activity { 
  15.  
  16.     private ProgressBar progressBar; 
  17.     
  18.     
  19.     
  20.     
  21.     private Handler handler=new Handler(){ 
  22.         public void handleMessage(Message msg){ 
  23.             switch(msg.what){ 
  24.             case 1
  25.                 int currentProgress=progressBar.getProgress()+2
  26.             if(currentProgress>progressBar.getMax()) 
  27.             currentProgress=0//断送进度条 
  28.             progressBar.setProgress(currentProgress);//显示进度条进度 
  29.             break
  30.             } 
  31.             super.handleMessage(msg); 
  32.         } 
  33.     }; 
  34.     
  35.     private TimerTask timerTask=new TimerTask(){ 
  36. //信息 
  37.         @Override 
  38.         public void run() { 
  39.             Message message=new Message(); 
  40.             message.what=1
  41.             handler.sendMessage(message); 
  42.             
  43.                 
  44.         } 
  45.         
  46.     }; 
  47.     
  48.     
  49.     
  50.     @Override 
  51.     public void onCreate(Bundle savedInstanceState) { 
  52.         super.onCreate(savedInstanceState); 
  53.         setContentView(R.layout.main); 
  54.         progressBar=(ProgressBar)findViewById(R.id.progressbar); 
  55.         Timer timer=new Timer(); 
  56.         timer.schedule(timerTask,0,500); 
  57.         //第二个参数为:从0开始,第三个参数为:它的速度,越大越慢,越小越快。 
  58.         
  59.     } 

 

 
  1. main.xml文件 
  2.  
  3. <?xml version="1.0" encoding="utf-8"?> 
  4. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  5.     android:orientation="vertical" 
  6.     android:layout_width="fill_parent" 
  7.     android:layout_height="fill_parent" 
  8.     > 
  9.     
  10.     <ProgressBar 
  11.     android:id="@+id/progressbar" 
  12.      android:layout_width="fill_parent" 
  13.     android:layout_height="wrap_content" 
  14.    android:layout_marginTop="20dp" 
  15.     android:max="100" 
  16.     style="?android:attr/progressBarStyleHorizontal" 
  17.     /> 
  18.     
  19.     
  20.  
  21. </LinearLayout> 

 


本文转自 llb988 51CTO博客,原文链接:http://blog.51cto.com/llb988/510427,如需转载请自行联系原作者

相关文章
|
4月前
|
XML Java Android开发
Android实现自定义进度条(源码+解析)
Android实现自定义进度条(源码+解析)
86 1
|
4月前
|
安全 Shell Android开发
Android系统 init.rc sys/class系统节点写不进解决方案和原理分析
Android系统 init.rc sys/class系统节点写不进解决方案和原理分析
148 0
|
4月前
|
安全 Android开发
Android13 Root实现和原理分析
Android13 Root实现和原理分析
415 0
|
4月前
|
Java Android开发
Android系统 获取用户最后操作时间回调实现和原理分析
Android系统 获取用户最后操作时间回调实现和原理分析
102 0
|
4月前
|
算法 Android开发
Android签名算法的原理
Android签名算法的原理
48 0
|
4月前
|
Android开发 移动开发 小程序
binder机制原理面试,安卓app开发教程
binder机制原理面试,安卓app开发教程
binder机制原理面试,安卓app开发教程
|
1天前
|
存储 监控 数据库
Android经典实战之OkDownload的文件分段下载及合成原理
本文介绍了 OkDownload,一个高效的 Android 下载引擎,支持多线程下载、断点续传等功能。文章详细描述了文件分段下载及合成原理,包括任务创建、断点续传、并行下载等步骤,并展示了如何通过多种机制保证下载的稳定性和完整性。
7 0
|
4月前
|
存储 Java Android开发
Android系统 设置第三方应用为默认Launcher实现和原理分析
Android系统 设置第三方应用为默认Launcher实现和原理分析
389 0
|
2月前
|
SQL 安全 Java
Android经典面试题之Kotlin中object关键字实现的是什么类型的单例模式?原理是什么?怎么实现双重检验锁单例模式?
Kotlin 单例模式概览 在 Kotlin 中,`object` 关键字轻松实现单例,提供线程安全的“饿汉式”单例。例如: 要延迟初始化,可使用 `companion object` 和 `lazy` 委托: 对于参数化的线程安全单例,结合 `@Volatile` 和 `synchronized`
36 6
|
3月前
|
安全 网络协议 算法
Android网络基础面试题之HTTPS的工作流程和原理
HTTPS简述 HTTPS基于TCP 443端口,通过CA证书确保服务器身份,使用DH算法协商对称密钥进行加密通信。流程包括TCP握手、证书验证(公钥解密,哈希对比)和数据加密传输(随机数加密,预主密钥,对称加密)。特点是安全但慢,易受特定攻击,且依赖可信的CA。每次请求可能复用Session ID以减少握手。
41 2