ProgressBar为进度条,通过它可以显示任务完成的进度,下面是动态水平ProgressBar的一种实现方式:

布局文件horizontal_progress_layout.xml如下:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <ProgressBar         android:id="@+id/progressbar"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:layout_centerVertical="true"        android:text="水平进度条"        style="?android:attr/progressBarStyleHorizontal"        android:max="100"        android:progress="50"        android:secondaryProgress="70"        />RelativeLayout>

逻辑实现类MainActivity.java如下:

package com.example.huawei;import android.os.Bundle;import android.R.integer;import android.animation.ObjectAnimator;import android.app.Activity;import android.view.Menu;import android.view.MotionEvent;import android.view.View;import android.view.animation.TranslateAnimation;import android.widget.ImageButton;import android.widget.ImageView;import android.widget.ProgressBar;import android.widget.TextView;public class MainActivity extends Activity {    private Thread thread;    private ProgressBar progressBar;    private boolean stateChange = true;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.horizontal_progress_layout);        progressBar = (ProgressBar)findViewById(R.id.progressbar);        thread = new Thread(new Runnable() {            @Override            public void run() {                // TODO Auto-generated method stub                while(true){                    int currentValue = progressBar.getProgress();                    int currentMaxValue = progressBar.getMax();                    int currentSecondaryValue = progressBar.getSecondaryProgress();                    if(stateChange == false){                        if(currentValue >= currentMaxValue){                            stateChange = true;                        }else{                            progressBar.setProgress(currentValue + 1);                            progressBar.setSecondaryProgress(currentValue+1);                        }                    }else{                        if(currentValue <= 0){                            stateChange = false;                        }else{                            progressBar.setProgress(currentValue - 1);                        }                    }                    try{                        Thread.sleep(50);                    }catch(InterruptedException e){                        e.printStackTrace();                    }                }            }        });        thread.start();    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }}

实际效果图如下:

更多相关文章

  1. android学习笔记32:标题栏进度条
  2. 据说年薪30万的Android程序员必须知道的帖子
  3. 自定义控件-进度条
  4. Android给Gallery处于中间的图片加一个背景图片
  5. Flutter Row、Column 参数详解
  6. 学习TimePicker和DataPicker
  7. Android的ScrollView和HorizontalScrollView-android学习之旅(四
  8. Android(安卓)游戏引擎libgdx 资源加载进度百分比显示
  9. 2017 Android(安卓)github上优秀开源项目分类汇总

随机推荐

  1. SystemUI编译遇到的问题
  2. 在Androd studio 中,TextView设置Text居然
  3. Android官方文档之App Resources(下)
  4. Android(安卓)ConstraintLayout 布局解析
  5. Android(安卓)Studio NDK开发入门
  6. Android(安卓)TabHost(简易用法)
  7. Android(安卓)面试
  8. android iphone手机分辨率尺寸比例整理
  9. Android(安卓)Market on Emulator
  10. Android编译系统 - pathmap.mk(宏)