最近想找一些新颖的等待框,但一直找不到理想的效果,没有办法,只好自己动手丰衣足食了。
先给大家看个效果图!
首先就是新建一个dialog的XML文件了
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_loading_bg"
android:gravity="center"
android:orientation="vertical"
android:padding="16.0dip" >
<ProgressBar
android:layout_width="24.0dip"
android:layout_height="24.0dip"
android:indeterminateDrawable="@drawable/progress_drawable_white" />
<TextView
android:id="@+id/id_tv_loadingmsg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginTop="8.0dip"
android:textColor="@color/white"
android:textSize="16.0dip" />
</LinearLayout>
ic_loading_bg就是一个背景的图片。
关于上面的drawable中的progress_drawable_white.xml文件如下
<?xml version="1.0" encoding="utf-8"?>
<animation-list android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="83" android:drawable="@drawable/ic_loading_white_01" />
<item android:duration="83" android:drawable="@drawable/ic_loading_white_02" />
<item android:duration="83" android:drawable="@drawable/ic_loading_white_03" />
<item android:duration="83" android:drawable="@drawable/ic_loading_white_04" />
<item android:duration="83" android:drawable="@drawable/ic_loading_white_05" />
<item android:duration="83" android:drawable="@drawable/ic_loading_white_06" />
<item android:duration="83" android:drawable="@drawable/ic_loading_white_07" />
<item android:duration="83" android:drawable="@drawable/ic_loading_white_08" />
<item android:duration="83" android:drawable="@drawable/ic_loading_white_09" />
<item android:duration="83" android:drawable="@drawable/ic_loading_white_10" />
<item android:duration="83" android:drawable="@drawable/ic_loading_white_11" />
<item android:duration="83" android:drawable="@drawable/ic_loading_white_12" />
</animation-list>
这12个都是图片来的。
核心显示等待框代码如下
progressDialog = new Dialog(AboutActivity.this,R.style.progress_dialog);
progressDialog.setContentView(R.layout.progress);
progressDialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
TextView msg = (TextView) progressDialog.findViewById(R.id.id_tv_loadingmsg);
msg.setText("卖力加载中");
progressDialog.show();
其中的文字可以自己改了,方便直接。
给新手的提示,记得在开头写上 private Dialog progressDialog;(老鸟可以忽略这个啦)
里面有个style,加上下面的代码到style.xml文件里面就OK了!
<style name="progress_dialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:background">@null</item>
<item name="android:windowBackground">@null</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
关于如何让这个消失,在需要消失的地方加上
progressDialog.dismiss();
就OK了
demo下载地址:ProgressDialog_jb51.rar
您可能感兴趣的文章:Android Listview中显示不同的视图布局详解及实例代码Android实现ImageView阴影和图层效果详解Android中的MVP架构分解和实现android使用AsyncTask实现多线程下载实例android多种滑动冲突的解决方案很实用的Android日期计算类Android实现图片上传功能Android 中StringBuffer 和StringBuilder常用方法Android获取联系人姓名和电话代码Android引导页面的简单实现Android 两种方法实现长按返回健退出