Android ProgressLayout:加载页面遮挡耗时操作任务页面
来源:互联网 发布:linux系统安全配置 编辑:程序博客网 时间:2024/06/05 03:05
在Android的开发中,往往有这种需求,比如一个耗时的操作,联网获取网络图片、内容,数据库耗时读写等等,在此耗时操作过程中,开发者也许不希望用户再进行其他操作(其他操作可能会引起逻辑混乱),而此时需要给用户一个额外的加载页面遮挡住主逻辑代码的运行,待主页面的耗时操作完成后,自动消失这样加载过度页面,恢复出正常应该显示的页面。
举个实际的例子,如代码使用Android WebView打开一个网页链接试图加载某个网站,但网络质量不佳,需要耗时很久,那么在这个过程中,较好的用户体验做法是:给用户一个加载进度页面,遮挡住WebView。当加载的内容成功后在完全切换回正常的逻辑页面。
举个实际的例子,如代码使用Android WebView打开一个网页链接试图加载某个网站,但网络质量不佳,需要耗时很久,那么在这个过程中,较好的用户体验做法是:给用户一个加载进度页面,遮挡住WebView。当加载的内容成功后在完全切换回正常的逻辑页面。
Android AndroidProgressLayout实现了这样的功能,Android AndroidProgressLayout在github上的项目主页是:点击打开链接
(开源包使用方法:
1、下载并解压开源包
2、将AndroidProgressLayout-master\library\src\main\java文件夹重命名为src
3、新建一个安卓项目,把AndroidProgressLayout-master\library\src\main导入,并设置成一个库
4、新建一个测试安卓项目,并添加库
)
AndroidProgressLayout要实现的功能如图:
现在给出一个例子加以说明。
使用AndroidProgressLayout,需要先写一个布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.hxzy.androidprogresslayout.MainActivity" > <com.github.androidprogresslayout.ProgressLayout 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" /> </com.github.androidprogresslayout.ProgressLayout></RelativeLayout>
Java代码:
package com.hxzy.androidprogresslayout;import com.github.androidprogresslayout.ProgressLayout;import com.hxzy.progresslayout.R;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.Menu;import android.view.MenuItem;import android.webkit.WebView.FindListener;import android.widget.TextView;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);final ProgressLayout pLayout = (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("加载完毕");// 切换回正常显示页面pLayout.showContent();}};// 开始加载... 假设从这里开始一个耗时的操作将开始启动,在此启动过程中,开发者希望用户稍事休息,等待。。。pLayout.showProgress();// 假设有一个耗时的加载业务逻辑,需要4秒完成。handler.sendEmptyMessageDelayed(0, 4000);}}
0 0
- Android ProgressLayout:加载页面遮挡耗时操作任务页面
- Android AndroidProgressLayout:加载页面遮挡耗时操作任务页面
- Android AndroidProgressLayout:加载页面遮挡耗时操作任务页面
- 加载页面遮挡耗时操作任务页面--第三方开源--AndroidProgressLayout
- Asp.Net Page_Load执行耗时操作,防止页面长时间加载。
- viewpager缓存页面,避免页面重新加载!如果每个页面中,有访问网络等耗时的操作,则用户体验会非常糟糕
- Android WebView加载页面的输入框被软键盘遮挡的问题
- Android WebView加载的页面里的输入框被软键盘遮挡
- android 输入键盘遮挡页面的问题
- [PHP]页面执行耗时
- android 界面显示ProgressLayout
- AJAX--显示加载中并弹出图层遮挡页面
- AJAX--显示加载中并弹出图层遮挡页面
- iOS 加载xib页面顶部被遮挡问题
- android耗时任务_ANR
- android耗时任务_handler
- android耗时任务_HandlerThread
- android耗时任务_IntentService
- java面向对象基础知识(五)
- hibernate jpa 注解 @Temporal(TemporalType.DATE) 格式化时间日期,页面直接得到格式化类型的值
- iOS 崩溃日志分析
- 通过request读取所有参数的练习
- Mysql查询语句性能优化
- Android ProgressLayout:加载页面遮挡耗时操作任务页面
- VMware安装增强功能实现共享文件夹和剪贴板
- python tornado coroutine 原理
- iOS 查找沙盒目录
- Android IPC (跨线程调用)
- AIDL权限验证
- 纽酷--键值对
- “互联网+”并非要干掉传统企业|“娃娃亲亲”创始人郑国新
- [OpenGL]利用OpenGL绘制一些简单的图形