14.ProcessBar进度条的应用实例:模拟两个进度条加载
来源:互联网 发布:域名怎么接入阿里云 编辑:程序博客网 时间:2024/05/22 10:41
1.效果描述
在该页面中,有两种进度条的样式:条形和圆形,当我点击开始按钮的时候,进度条出现。然后我们手动点击增加按钮,每次增加10(共100);当进度条的值大于100时,加载完成,进度条消失;此时如果点击重新开始按钮,用户将可以继续点击增加按钮为进度条控制。
目标效果如下图所示:
2.页面布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:background="@drawable/bg" > <LinearLayout android:layout_marginTop="10dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/t1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="开始加载" android:textSize="24dp" android:textColor="#FFFFFF"/> <ProgressBar android:id="@+id/hor" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:max="100" style="@android:style/Widget.ProgressBar.Horizontal"/> </LinearLayout> <LinearLayout android:layout_marginTop="10dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/t2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="开始加载" android:textSize="24dp" android:textColor="#FFFFFF"/> <ProgressBar android:id="@+id/circle" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:max="100" style="?android:attr/progressBarStyleLarge"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginTop="20dp"> <Button android:id="@+id/start" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="开始" android:textSize="24dp" android:textColor="#FFFFFF"/> <Button android:id="@+id/add" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="增加" android:textSize="24dp" android:textColor="#FFFFFF" android:layout_marginLeft="20dp"/> <Button android:id="@+id/restart" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="重新开始" android:textSize="24dp" android:textColor="#FFFFFF" android:layout_marginLeft="20dp"/> </LinearLayout></LinearLayout>
3.事件响应
package com.example.processbardemo;import android.os.Bundle;import android.app.Activity;import android.content.pm.FeatureInfo;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ProgressBar;import android.widget.TextView;public class MainActivity extends Activity { ProgressBar hor=null; ProgressBar circle=null; Button start,add,restart; TextView t1,t2; int status=0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取所有的控件 hor=(ProgressBar) findViewById(R.id.hor); circle=(ProgressBar) findViewById(R.id.circle); start=(Button) findViewById(R.id.start); add=(Button) findViewById(R.id.add); restart=(Button) findViewById(R.id.restart); t1=(TextView) findViewById(R.id.t1); t2=(TextView) findViewById(R.id.t2); //先设置开始看到的界面:两个进度条不可见,只有一个开始按钮 hor.setVisibility(View.GONE); circle.setVisibility(View.GONE); add.setVisibility(View.GONE); restart.setVisibility(View.GONE); //为开始按钮添加动作事件 start.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { //两个文本框显示正在加载,两个进度条可见,增加按钮出现,开始按钮消失 t1.setText("正在加载"); t2.setText("正在加载"); hor.setVisibility(View.VISIBLE); circle.setVisibility(View.VISIBLE); add.setVisibility(View.VISIBLE); start.setVisibility(View.GONE); } }); //为增加按钮设置相应的动作事件 add.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { if(status==0) { //先为水平进度条的第二进度开始赋值 hor.setSecondaryProgress(status+10); }else if(status<=100) { hor.setProgress(status); hor.setSecondaryProgress(status); circle.setProgress(status); }else { //此时,进度条加载完成,变成重新开始的页面 t1.setText("加载完成"); t2.setText("加载完成"); hor.setVisibility(View.GONE); circle.setVisibility(View.GONE); add.setVisibility(View.GONE); restart.setVisibility(View.VISIBLE); status=0; } status+=10; } }); //为重新开始按钮添加相应的动作事件 restart.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { //跳转到增加页面 add.setVisibility(View.VISIBLE); restart.setVisibility(View.GONE); t1.setText("正在加载"); t2.setText("正在加载"); hor.setProgress(0); circle.setProgress(0); hor.setVisibility(View.VISIBLE); circle.setVisibility(View.VISIBLE); hor.setProgress(0); circle.setProgress(0); } }); } @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; }}
阅读全文
0 0
- 14.ProcessBar进度条的应用实例:模拟两个进度条加载
- WinForm程序进度条:ProcessBar -一个实例应用
- symbian 进度条 processbar
- android中的进度条processBar
- 进度条ProcessBar示例
- 进度条 游戏中Win32进度条ProcessBar的编码
- ProcessBar进度条 100%不满进度条问题
- 模拟中国移动App的加载进度条
- jQuery模拟页面加载进度条
- 进度条的模拟实现
- flex的加载进度条
- android界面组件之进度条--ProcessBar
- HTML5 CSS3 诱人的实例 : 网页加载进度条的实现,下载进度条等
- HTML5 CSS3 诱人的实例 : 网页加载进度条的实现,下载进度条等
- HTML5 CSS3 诱人的实例 : 网页加载进度条的实现,下载进度条等
- 模拟进度条
- 模拟进度条
- 两个进度条
- C++类接口和头文件概述
- 用面向对象解决 输入用户名自动显示邮箱后缀列表的方法
- 快速 排序的思想并实现一个快排?
- 分布式框架-Dubbox介绍
- 思辨人工智能 IBM Watson在帮每个人实现无限可能
- 14.ProcessBar进度条的应用实例:模拟两个进度条加载
- js模块化编程总结
- fake-useragent User Agent 伪装
- 基于Agile Lite开发框架实现底部导航切换页面
- 关于mysql字符串与时间戳
- 一道奥数题的简单实现
- struts2-convention-plugin-2.3.1.2.jar
- PHP平铺水印
- css自定义遮罩滑动