自己定义progressdialog,改善用户体验

效果图:

详细实现方式:

1.定义Dialog的Layout布局

2.设置动画anim

3.创建自己定义dialog的样式

4.创建共同拥有方法来控制Dialog

1.定义Dialog的Layout布局 : layout文件夹下 layout_loading_dialog.xml

  1. <?
  2.  
  3. xml version="1.0" encoding="utf-8"?
  4.  
  5. >
  6. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  7. android:id="@+id/dialog_view"
  8. android:layout_width="match_parent"
  9. android:layout_height="match_parent"
  10. android:gravity="center_vertical|center"
  11. android:orientation="vertical"
  12. android:background="@color/transparent">
  13.  
  14. <ImageView
  15. android:id="@+id/img"
  16. android:layout_width="wrap_content"
  17. android:layout_height="wrap_content"
  18. android:src="@drawable/loading" />
  19.  
  20. </LinearLayout>

2.设置动画anim : 创建 anim文件夹 loading_animation.xml

  1. <?xml version="1.0" encoding="utf-8"?
  2.  
  3. >
  4. <set android:shareInterpolator="false" xmlns:android="http://schemas.android.com/apk/res/android">
  5. <rotate
  6. android:interpolator="@android:anim/linear_interpolator"
  7. android:pivotX="50%"
  8. android:pivotY="50%"
  9. android:fromDegrees="0"
  10. android:toDegrees="+360"
  11. android:duration="1500"
  12. android:startOffset="-1"
  13. android:repeatMode="restart"
  14. android:repeatCount="-1"/>
  15. </set>

3.创建自己定义dialog的样式Theme : values文件夹  themes.xml

  1. <!-- 自己定义loading dialog -->
  2. <style name="loading_dialog" parent="android:Theme.Dialog">
  3. <item name="android:windowFrame">@null</item> <!-- Dialog的windowFrame框为无 -->
  4. <item name="android:windowBackground">@color/transparent</item> <!-- 设置dialog的背景 -->
  5. <item name="android:windowNoTitle">true</item> <!-- 是否显示title -->
  6. <item name="android:windowIsTranslucent">true</item> <!-- 是否半透明 -->
  7. <item name="android:windowIsFloating">true</item> <!-- 是否浮如今activity之上 -->
  8. <item name="android:windowContentOverlay">@null</item> <!-- 也是个drawable,定义contentoverlay的背景 -->
  9. <item name="android:backgroundDimEnabled">false</item> <!-- 背景是否模糊显示 -->
  10. </style>

4.创建共同拥有方法来控制Dialog

  1. /**
  2. * 得到自己定义的progressDialog
  3. * @param context
  4. * @return
  5. */
  6. public static Dialog createLoadingDialog(Context context) {
  7. LayoutInflater inflater = LayoutInflater.from(context);
  8. View v = inflater.inflate(R.layout.layout_loading_dialog, null); // 得到载入view
  9. LinearLayout layout = (LinearLayout) v.findViewById(R.id.dialog_view); // 载入布局
  10. ImageView spaceshipImage = (ImageView) v.findViewById(R.id.img);
  11. Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(context,R.anim.loading_animation); // 载入动画
  12. spaceshipImage.startAnimation(hyperspaceJumpAnimation); // 使用ImageView显示动画
  13. Dialog loadingDialog = new Dialog(context, R.style.loading_dialog); // 创建自己定义样式dialog
  14.  
  15. //loadingDialog.setCancelable(false);// 不能够用"返回键"取消
  16. loadingDialog.setContentView(layout, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
  17. LinearLayout.LayoutParams.WRAP_CONTENT));
  18. return loadingDialog;
  19. }

  1. OK ! 使用时直接调用便可:
  2.  
  3. public Dialog mLoading;
  4.  
  5. mLoading = DialogUtils.createLoadingDialog(this);
  6.  
  7. mLoading.show();
  8.  
  9. mLoading.dismiss();

自己定义progressdialog,改善用户体验的更多相关文章

  1. 自定义progressdialog,改善用户体验

    自定义progressdialog,改善用户体验

  2. 改善用户体验之wordpress添加图片弹出层效果 (插件 FancyBox)

    下面说说在改善用户体验之wordpress添加图片弹出层效果.效果图如下:   像这篇文章如何在百度搜索结果中显示网站站点logo? 文章内有添加图片,没加插件之前用户点击图片时,是直接_black打 ...

  3. 改善用户体验 Web前端优化策略总结

    前端是庞大的,包括HTML.CSS.Javascript.Image.Flash等等各种各样的资源.前端优化是复杂的,针对方方面面的资源都有不同的方式.那么,前端优化的目的是什么? 1. 从用户角度而 ...

  4. 改善用户体验,用图片的自身变化以及进度通知摆脱传统的进度条,okhttp,Canvas,Paint实现

    转载请注明出处:王亟亟的大牛之路 从最開始的白页面等待,到后来的进度条告知用户.到如今的WebBO/微信这样的先下缩略图点击才又一次下大图的方式,我们开发人员对用户感知的注意度越来越高.昨天刷微博的时 ...

  5. 使用JS&jQuery改善用户体验

    第一章  JavaScript基本语法 一.运算符 运算符就是完成操作的一系列符号,它有七类: 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&= ...

  6. 【读书笔记】iOS-反溃网络信息改善用户体验

    一,iOS6表视图刷新控件的使用. 二,使用等待指示器控件. 三,使用网络等待指示器. 四,使用MBProgressHUD等待指示器. 参考资料:<iOS网络编程与云端应用-最佳实践>

  7. 提升用户体验的最佳免费 jQuery 表单插件

    网页表单是一个老生常谈的话题.出于这样或那样的目的,一些示例中都会包括用户注册,电子商务结算,用户设置甚至联系人表格.而输入栏是非常容易用现代的CSS3技术来应用样式.但是到底什么决定整体用户体验? ...

  8. 提示用户体验的最佳免费 Jquery 表单插件

    网页表单是一个老生常谈的话题.出于这样或那样的目的,一些示例中都会包括用户注册,电子商务结算,用户设置甚至联系人表格.而输入栏是非常容易用现代的CSS3技术来应用样式.但是到底什么决定整体用户体验? ...

  9. web设计经验<二>设计华丽的用户体验的6个热门技巧

    你是否曾经下载了一个应用,却发现它“很难使用”?对于大多数智能手机用户来说,答案是肯定的. 有趣的是,每四个手机应用中就有一个应用在下载后被“打入冷宫”. 如果一个应用能够吸引一个人下载并且打开它,但 ...

随机推荐

  1. javascript 定义类(转载)

    Javascript本身并不支持面向对象,它没有访问控制符,它没有定义类的关键字class,它没有支持继承的extend或冒号,它也没有用来支持虚函数的virtual,不过,Javascript是一门 ...

  2. Oracle DBA常用的系统表

    1.2 DBA常用的表1.2.1  dba_开头    dba_users数据库用户信息    dba_segments  表段信息    dba_extents    数据区信息    dba_ob ...

  3. JAVA GUI学习 - 总结

    一:项目 二:重要组件补充 三:组件高级操作

  4. Qt5 FOR WINCE7, Visual Studio 2008环境的搭建

    Qt5 FOR WINCE7, Visual Studio 2008环境的搭建 Qt5发布时,试过配置Qt5 for wince的环境,原因是暂时不支持WINCE.前几天意外发现官方博客说明已经开始支 ...

  5. poj1201 Intervals【差分约束+SPFA】

    转载请注明出处,谢谢:http://www.cnblogs.com/KirisameMarisa/p/4303365.html   ---by 墨染之樱花 题目链接:http://poj.org/pr ...

  6. ORACLE分科目统计每科前三名的学生的语句

    有个成绩表 score(student_no,Subject_no,Score)分别为学号,课程号,成绩.我想用语句查询出每科的前三名学生的学号,请各位高手教教小弟 1.创建测试语句:create t ...

  7. 上传列表集合wsp包

    1. 网站设置--web设计器库--解决方案--上载解决方案 2. 打开SPD,左侧的子网站--新建

  8. javascript类型转换、运算符、语句

    1.类型转换: 分为自动转换和强制转换,一般用强制转换. 其他类型转换为整数:parseint(): 其他类型转换为小数:parsefloat(): 判断是否是一个合法的数字类型:isNaN(): 是 ...

  9. jsp中的jquery失效以及引入js失败的问题

    这段时间在试着看公司用的框架是怎么写的,看到项目中对jquery进一步封装的这一部分,所以自己试着写一些demo来模仿框架中的用法. 再一次的,又遇到了一个问题,jsp中引入js的问题,好久没有自己从 ...

  10. 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 ...