首先是一个普通的版本:
public static final int SHOWDIALOG = 10000;
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case SHOWDIALOG:
Dialog dialog = new Dialog(this,R.style.LodingDialog);
dialog.setContentView(R.layout.dialog);
return dialog;
default:
return null;
}
}
dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ProgressBar android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
style="@android:style/Widget.ProgressBar.Inverse" />
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="加载中..." />
</LinearLayout>
style.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="LodingDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowBackground">@android:color/transparent</item>
</style>
</resources>
下面是美化版本:
需要用到的图片:
也可以到这里下载:http://download.youkuaiyun.com/detail/jdsjlzx/4138421
layout_progressbar.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<ProgressBar
android:id="@+id/waitingbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:indeterminate="false"
android:indeterminateDrawable="@drawable/ic_circle_progress"
/>
<TextView
android:id="@+id/emptyView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="loading..."
android:textSize="12sp"
android:textAppearance="?android:textAppearanceMedium"
android:textColor="@color/blue" />
</LinearLayout>
位于drawable目录下:
ic_circle_progress.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<rotate android:drawable="@drawable/ic_progress_normal" android:fromDegrees="-315.0" android:toDegrees="0.0" android:pivotX="50.0%" android:pivotY="50.0%" />
</item>
</layer-list>
style.xml
<style name="new_circle_progress" parent="@android:style/Theme.Dialog">
<item name="android:indeterminateDrawable">@drawable/ic_circle_progress</item>
<item name="android:windowFrame">@null</item><!--边框-->
<item name="android:windowIsFloating">true</item><!--是否浮现在activity之上-->
<item name="android:windowIsTranslucent">false</item><!--半透明-->
<item name="android:windowBackground">@color/transparent</item><!--背景透明-->
<item name="android:backgroundDimEnabled">false</item><!--模糊-->
</style>
代码:
private final static int PROGRESSFORWAIT = 1000;
@Override
protected Dialog onCreateDialog(int id, Bundle args) {
// TODO Auto-generated method stub
super.onCreateDialog(id, args);
switch (id) {
case PROGRESSFORWAIT:
Dialog dialog = new Dialog(this,R.style.new_circle_progress);
dialog.setContentView(R.layout.layout_progressbar);
return dialog;
default:
return null;
}
}