一种动态水平ProgressBar的实现
16lz
2021-01-24
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; }}
实际效果图如下:
更多相关文章
- android学习笔记32:标题栏进度条
- 据说年薪30万的Android程序员必须知道的帖子
- 自定义控件-进度条
- Android给Gallery处于中间的图片加一个背景图片
- Flutter Row、Column 参数详解
- 学习TimePicker和DataPicker
- Android的ScrollView和HorizontalScrollView-android学习之旅(四
- Android(安卓)游戏引擎libgdx 资源加载进度百分比显示
- 2017 Android(安卓)github上优秀开源项目分类汇总