Loading waiting 实现方式
来源:互联网 发布:jsp源码网盘 编辑:程序博客网 时间:2024/05/21 08:42
waiting_layout.xml 布局的代码:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="280dip"
android:layout_gravity="center" android:gravity="center"
android:layout_height="120dip" android:background="@drawable/alpha_black_back">
<ProgressBar android:layout_width="wrap_content"
style="?android:attr/progressBarStyleLarge" android:layout_height="wrap_content"
android:layout_margin="5dip" />
<TextView android:id="@+id/identify_label" android:textColor="#fff"
android:paddingLeft="3dip" android:paddingRight="5dip"
android:layout_width="wrap_content" android:textSize="22sp"
android:layout_height="fill_parent" android:gravity="center"
android:text="@string/common_message_pleaseWait" />
</LinearLayout>
在Activity上层新建一个Window,用于承载loading. 这样做的好处,避免在Activity上加一个ProgressView. 具体代码如下:
protected final void showWaiting(boolean isBlur) {
isWaiting = true;
try {
WindowManager.LayoutParams lp = null;
if (isBlur) {
lp = new WindowManager.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_APPLICATION,
WindowManager.LayoutParams.FLAG_FULLSCREEN
| WindowManager.LayoutParams.FLAG_BLUR_BEHIND
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
PixelFormat.TRANSLUCENT);
} else {
lp = new WindowManager.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_APPLICATION,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
PixelFormat.TRANSLUCENT);
}
WindowManager mWindowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
if (waitView == null) {
LayoutInflater inflate = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
waitView = inflate.inflate(R.layout.waiting_layout, null);
}
mWindowManager.addView(waitView, lp);
} catch (Throwable e) {
isWaiting = false;
Log.e(TAG, "[showWaiting]");
}
}
protected final void hideWaiting() {
isWaiting = false;
try {
if (waitView != null) {
WindowManager mWindowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
mWindowManager.removeView(waitView);
waitView = null;
}
} catch (Throwable e) {
Log.e(TAG, "[showWaiting]", e);
}
}
- Loading waiting 实现方式
- Loading waiting 实现方式
- Android实现加载(loading)图片旋转的三种方式
- 解决Cygwin中的“died waiting for dll loading”错误
- Ext实现waiting提示功能
- waiting
- js 实现loading效果
- Iphone实现Loading效果
- jquery实现loading...提示
- 如何实现环形Loading
- Iphone实现Loading效果
- HTML+CSS实现loading
- bootstrap实现loading
- CSS3 实现 Loading 动画
- weui loading效果实现
- css3实现loading
- 遮罩层Loading实现
- loading的实现(css3)
- mysql 命令行导入数据
- ASP.NET 伪静态页面的实现
- Spring不是“春天”
- ifram详细用法(转)
- Oracle的nvl(a,b)函数的用法
- Loading waiting 实现方式
- DELPHI四舍五入函数
- ubuntu 下操作目录,出现Permission denied的解决办法
- (转载)视频采集学习笔记
- 仿UCWEB自定义Menu
- 动静态链接库解析
- 打印机删除不了
- 把文件内的0替换成0+空格
- 微软内置类记录