搜索
 找回密码
 立即注册

简单一步 , 微信登陆

Android自定义类似ProgressDialog效果的Dialog

作者:liuwei | 时间:2016-10-18 19:47:24 | 阅读:5551| 只看该作者 只看大图
Android自定义类似ProgressDialog效果的Dialog.
方法如下:
1.首先准备两张自己要定义成哪样子的效果的图片和背景图片(也可以不要背景)。
如我要的效果:
file:///C:/Users/liuwei/AppData/Local/YNote/data/liuwei372**34@163.com/34ccaaae9ad64a5d8c8eee3f1f8b13c1/7606673_7051.png

2.定义loading_dialog.xml布局文件(这里你也可以按自己的布局效果定义,关键是要有个imageView):
[html] view plaincopy
  • <?xml version="1.0" encoding="utf-8"?>  
  • <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  •     android:id="@+id/dialog_view"   
  •     androidrientation="vertical"  
  •     android:layout_width="fill_parent"   
  •     android:layout_height="fill_parent"  
  •     android:minHeight="60dp"  
  •     android:minWidth="180dp"  
  •     android:gravity="center"  
  •     android:padding="10dp"  
  •     android:background="@drawable/loading_bg">  
  •     <ImageView   
  •         android:id="@+id/img"  
  •         android:layout_width="wrap_content"   
  •         android:layout_height="wrap_content"   
  •         android:src="@drawable/publicloading"  
  •         />  
  •     <TextView   
  •         android:id="@+id/tipTextView"  
  •         android:layout_width="wrap_content"   
  •         android:layout_height="wrap_content"  
  •         android:layout_marginLeft="10dp"  
  •         android:text="数据加载中……" />  
  • </LinearLayout>  

3.定义一个loadingDialog中imageView转动的动画:loading_animation.xml
[html] view plaincopy
  • <?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>  

4.定义dialog的style.
[java] view plaincopy
  • <!-- 自定义loading dialog -->  
  •     <style name="loading_dialog" parent="android:style/Theme.Dialog">  
  •         <item name="android:windowFrame">@null</item>  
  •         <item name="android:windowNoTitle">true</item>   
  •         <item name="android:windowBackground">@drawable/loading_bg</item>  
  •         <item name="android:windowIsFloating">true</item>  
  •         <item name="android:windowContentOverlay">@null</item>  
  •     </style>  



5.写点创建Dialog的代码,你可以自己封装成一个方法。
[java] view plaincopy
  • /**
  •      * 得到自定义的progressDialog
  •      * @param context
  •      * @param msg
  •      * @return
  •      */  
  •     public static Dialog createLoadingDialog(Context context, String msg) {  
  •   
  •         LayoutInflater inflater = LayoutInflater.from(context);  
  •         View v = inflater.inflate(R.layout.loading_dialog, null);// 得到加载view  
  •         LinearLayout layout = (LinearLayout) v.findViewById(R.id.dialog_view);// 加载布局  
  •         // main.xml中的ImageView  
  •         ImageView spaceshipImage = (ImageView) v.findViewById(R.id.img);  
  •         TextView tipTextView = (TextView) v.findViewById(R.id.tipTextView);// 提示文字  
  •         // 加载动画  
  •         Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(  
  •                 context, R.anim.load_animation);  
  •         // 使用ImageView显示动画  
  •         spaceshipImage.startAnimation(hyperspaceJumpAnimation);  
  •         tipTextView.setText(msg);// 设置加载信息  
  •   
  •         Dialog loadingDialog = new Dialog(context, R.style.loading_dialog);// 创建自定义样式dialog  
  •   
  •         loadingDialog.setCancelable(false);// 不可以用“返回键”取消  
  •         loadingDialog.setContentView(layout, new LinearLayout.LayoutParams(  
  •                 LinearLayout.LayoutParams.FILL_PARENT,  
  •                 LinearLayout.LayoutParams.FILL_PARENT));// 设置布局  
  •         return loadingDialog;  
  •   
  •     }  


最后来张整体的效果图:

file:///C:/Users/liuwei/AppData/Local/YNote/data/liuwei372**34@163.com/92f19d2552a44102a2e85a88fd0ee28e/607321_4092.jpeg

7606673_7051.png (1.82 KB, 下载次数: 476)

7606673_7051.png

607321_4092.jpeg (7.42 KB, 下载次数: 466)

607321_4092.jpeg
收藏
收藏0
分享
分享
点赞
点赞0
反对
反对0
回复

使用道具 举报

大神点评1

沙发#
demn61 发表于:2016-10-28 17:28:07
赞,楼主写了很多Android的教程,有时间好好学习下。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
手机版