自己定义progressdialog,改善用户体验
自己定义progressdialog,改善用户体验
效果图:
详细实现方式:
1.定义Dialog的Layout布局
2.设置动画anim
3.创建自己定义dialog的样式
4.创建共同拥有方法来控制Dialog
1.定义Dialog的Layout布局 : layout文件夹下 layout_loading_dialog.xml
- <?
- xml version="1.0" encoding="utf-8"?
- >
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/dialog_view"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:gravity="center_vertical|center"
- android:orientation="vertical"
- android:background="@color/transparent">
- <ImageView
- android:id="@+id/img"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@drawable/loading" />
- </LinearLayout>
2.设置动画anim : 创建 anim文件夹 loading_animation.xml
- <?xml version="1.0" encoding="utf-8"?
- >
- <set android:shareInterpolator="false" xmlns:android="http://schemas.android.com/apk/res/android">
- <rotate
- android:interpolator="@android:anim/linear_interpolator"
- android:pivotX="50%"
- android:pivotY="50%"
- android:fromDegrees="0"
- android:toDegrees="+360"
- android:duration="1500"
- android:startOffset="-1"
- android:repeatMode="restart"
- android:repeatCount="-1"/>
- </set>
3.创建自己定义dialog的样式Theme : values文件夹 themes.xml
- <!-- 自己定义loading dialog -->
- <style name="loading_dialog" parent="android:Theme.Dialog">
- <item name="android:windowFrame">@null</item> <!-- Dialog的windowFrame框为无 -->
- <item name="android:windowBackground">@color/transparent</item> <!-- 设置dialog的背景 -->
- <item name="android:windowNoTitle">true</item> <!-- 是否显示title -->
- <item name="android:windowIsTranslucent">true</item> <!-- 是否半透明 -->
- <item name="android:windowIsFloating">true</item> <!-- 是否浮如今activity之上 -->
- <item name="android:windowContentOverlay">@null</item> <!-- 也是个drawable,定义contentoverlay的背景 -->
- <item name="android:backgroundDimEnabled">false</item> <!-- 背景是否模糊显示 -->
- </style>
4.创建共同拥有方法来控制Dialog
- /**
- * 得到自己定义的progressDialog
- * @param context
- * @return
- */
- public static Dialog createLoadingDialog(Context context) {
- LayoutInflater inflater = LayoutInflater.from(context);
- View v = inflater.inflate(R.layout.layout_loading_dialog, null); // 得到载入view
- LinearLayout layout = (LinearLayout) v.findViewById(R.id.dialog_view); // 载入布局
- ImageView spaceshipImage = (ImageView) v.findViewById(R.id.img);
- Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(context,R.anim.loading_animation); // 载入动画
- spaceshipImage.startAnimation(hyperspaceJumpAnimation); // 使用ImageView显示动画
- Dialog loadingDialog = new Dialog(context, R.style.loading_dialog); // 创建自己定义样式dialog
- //loadingDialog.setCancelable(false);// 不能够用"返回键"取消
- loadingDialog.setContentView(layout, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
- LinearLayout.LayoutParams.WRAP_CONTENT));
- return loadingDialog;
- }
- OK ! 使用时直接调用便可:
- public Dialog mLoading;
- mLoading = DialogUtils.createLoadingDialog(this);
- mLoading.show();
- mLoading.dismiss();
自己定义progressdialog,改善用户体验的更多相关文章
- 自定义progressdialog,改善用户体验
自定义progressdialog,改善用户体验
- 改善用户体验之wordpress添加图片弹出层效果 (插件 FancyBox)
下面说说在改善用户体验之wordpress添加图片弹出层效果.效果图如下: 像这篇文章如何在百度搜索结果中显示网站站点logo? 文章内有添加图片,没加插件之前用户点击图片时,是直接_black打 ...
- 改善用户体验 Web前端优化策略总结
前端是庞大的,包括HTML.CSS.Javascript.Image.Flash等等各种各样的资源.前端优化是复杂的,针对方方面面的资源都有不同的方式.那么,前端优化的目的是什么? 1. 从用户角度而 ...
- 改善用户体验,用图片的自身变化以及进度通知摆脱传统的进度条,okhttp,Canvas,Paint实现
转载请注明出处:王亟亟的大牛之路 从最開始的白页面等待,到后来的进度条告知用户.到如今的WebBO/微信这样的先下缩略图点击才又一次下大图的方式,我们开发人员对用户感知的注意度越来越高.昨天刷微博的时 ...
- 使用JS&jQuery改善用户体验
第一章 JavaScript基本语法 一.运算符 运算符就是完成操作的一系列符号,它有七类: 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&= ...
- 【读书笔记】iOS-反溃网络信息改善用户体验
一,iOS6表视图刷新控件的使用. 二,使用等待指示器控件. 三,使用网络等待指示器. 四,使用MBProgressHUD等待指示器. 参考资料:<iOS网络编程与云端应用-最佳实践>
- 提升用户体验的最佳免费 jQuery 表单插件
网页表单是一个老生常谈的话题.出于这样或那样的目的,一些示例中都会包括用户注册,电子商务结算,用户设置甚至联系人表格.而输入栏是非常容易用现代的CSS3技术来应用样式.但是到底什么决定整体用户体验? ...
- 提示用户体验的最佳免费 Jquery 表单插件
网页表单是一个老生常谈的话题.出于这样或那样的目的,一些示例中都会包括用户注册,电子商务结算,用户设置甚至联系人表格.而输入栏是非常容易用现代的CSS3技术来应用样式.但是到底什么决定整体用户体验? ...
- web设计经验<二>设计华丽的用户体验的6个热门技巧
你是否曾经下载了一个应用,却发现它“很难使用”?对于大多数智能手机用户来说,答案是肯定的. 有趣的是,每四个手机应用中就有一个应用在下载后被“打入冷宫”. 如果一个应用能够吸引一个人下载并且打开它,但 ...
随机推荐
- javascript 定义类(转载)
Javascript本身并不支持面向对象,它没有访问控制符,它没有定义类的关键字class,它没有支持继承的extend或冒号,它也没有用来支持虚函数的virtual,不过,Javascript是一门 ...
- Oracle DBA常用的系统表
1.2 DBA常用的表1.2.1 dba_开头 dba_users数据库用户信息 dba_segments 表段信息 dba_extents 数据区信息 dba_ob ...
- JAVA GUI学习 - 总结
一:项目 二:重要组件补充 三:组件高级操作
- Qt5 FOR WINCE7, Visual Studio 2008环境的搭建
Qt5 FOR WINCE7, Visual Studio 2008环境的搭建 Qt5发布时,试过配置Qt5 for wince的环境,原因是暂时不支持WINCE.前几天意外发现官方博客说明已经开始支 ...
- poj1201 Intervals【差分约束+SPFA】
转载请注明出处,谢谢:http://www.cnblogs.com/KirisameMarisa/p/4303365.html ---by 墨染之樱花 题目链接:http://poj.org/pr ...
- ORACLE分科目统计每科前三名的学生的语句
有个成绩表 score(student_no,Subject_no,Score)分别为学号,课程号,成绩.我想用语句查询出每科的前三名学生的学号,请各位高手教教小弟 1.创建测试语句:create t ...
- 上传列表集合wsp包
1. 网站设置--web设计器库--解决方案--上载解决方案 2. 打开SPD,左侧的子网站--新建
- javascript类型转换、运算符、语句
1.类型转换: 分为自动转换和强制转换,一般用强制转换. 其他类型转换为整数:parseint(): 其他类型转换为小数:parsefloat(): 判断是否是一个合法的数字类型:isNaN(): 是 ...
- jsp中的jquery失效以及引入js失败的问题
这段时间在试着看公司用的框架是怎么写的,看到项目中对jquery进一步封装的这一部分,所以自己试着写一些demo来模仿框架中的用法. 再一次的,又遇到了一个问题,jsp中引入js的问题,好久没有自己从 ...
- linux安装LNMP的资源
wget http://nginx.org/download/nginx-0.7.69.tar.gz wget http://museum.php.net/php5/php-5.2.10.tar.gz ...