Android AndroidProgressLayout:加载页面遮挡耗时操作任务页面

在Android的开发中,往往有这种需求,比如一个耗时的操作,联网获取网络图片、内容,数据库耗时读写等等,在此耗时操作过程中,开发者也许不希望用户再进行其他操作(其他操作可能会引起逻辑混乱),而此时需要给用户一个额外的加载页面遮挡住主逻辑代码的运行,待主页面的耗时操作完成后,自动消失这样加载过度页面,恢复出正常应该显示的页面。
举个实际的例子,如代码使用Android WebView打开一个网页链接试图加载某个网站,但网络质量不佳,需要耗时很久,那么在这个过程中,较好的用户体验做法是:给用户一个加载进度页面,遮挡住WebView。当加载的内容成功后在完全切换回正常的逻辑页面。
Android AndroidProgressLayout实现了这样的功能,Android AndroidProgressLayout在github上的项目主页是:https://github.com/antonkrasov/AndroidProgressLayout
AndroidProgressLayout要实现的功能如图:


现在给出一个例子加以说明。

使用AndroidProgressLayout,需要先写一个布局:

<com.github.androidprogresslayout.ProgressLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:progressLayout="http://schemas.android.com/apk/res-auto"    android:id="@+id/progress_layout"    android:layout_width="match_parent"    android:layout_height="match_parent"    progressLayout:progressBackground="#4fc3f7" >    <TextView        android:id="@+id/text"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:gravity="center" /></com.github.androidprogresslayout.ProgressLayout>


Java代码:

package zhangphil.demo;import com.github.androidprogresslayout.ProgressLayout;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.widget.TextView;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);final ProgressLayout progressLayout = (ProgressLayout) findViewById(R.id.progress_layout);final TextView text = (TextView) findViewById(R.id.text);Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {text.setText("加载完毕!");// 切换回正常显示页面progressLayout.showContent();}};// 开始加载... 假设从这里开始一个耗时的操作将开始启动,在此启动过程中,开发者希望用户稍事休息,等待。。。progressLayout.showProgress();// 假设有一个耗时的加载业务逻辑,需要5秒完成。handler.sendEmptyMessageDelayed(0, 5000);}}


更多相关文章

  1. 日积月累:EditText软键盘的显示和隐藏
  2. Android图片开源库:最全面、详细的Picasso讲解
  3. Android面试题(28)-android的view加载和绘制流程
  4. 在android上,用WEB页面打开手机摄像头
  5. Android官方MVP+Loader示例学习
  6. [造轮子]Android动态加载框架总结
  7. Android中ListView动态加载数据
  8. Android多线程的实现方式及使用场景
  9. DEX 文件和APK 加载

随机推荐

  1. XML-OpenSearch应用的具体介绍
  2. XML模式-Dublin Core的详解
  3. 介绍数据库生成xml的两个简单示例代码
  4. XML模式-FIXML和SVG的区别
  5. 详细介绍Mybatis在Xml中处理大于号和小于
  6. XML模式 -Dublin Core的详细介绍
  7. 简单介绍百度新闻开放协议XML文档制作方
  8. 详细介绍将XML数据转换成HTML的示例代码
  9. 数据中有'<'、'&'符号时,封装的XML就无法
  10. XML基本概念入门介绍