1、提供一个 创建对话框的方法
/**
* 获取一个类似加载的对话框
* @param context 上下文
* @param msg 文字说明
* @return 对话框的对象
*/
public static Dialog createLoadingDialog(Context context, String msg) {
/*
* 获得view填充器对象
*/
LayoutInflater inflater = LayoutInflater.from(context);
/*
* 得到加载view
*/
View v = inflater.inflate(R.layout.loading_dialog, null);
/*
* 加载布局
*/
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.loading_animation);
/*
* 使用ImageView显示动画
*/
// spaceshipImage.startAnimation(hyperspaceJumpAnimation);
if(msg != null && !msg.equals("")){
tipTextView.setText(msg);// 设置加载信息
}
Dialog loadingDialog = new Dialog(context, R.style.loading_dialog);// 创建自定义样式dialog
loadingDialog.setCancelable(true);// 可以用“返回键”取消
loadingDialog.setCanceledOnTouchOutside(false);//
loadingDialog.setContentView(layout, new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT));// 设置布局
loadingDialog.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
}
});
return loadingDialog;
}
2、自定义对话框的样式代码如下
<style name="loading_dialog" parent="android:style/Theme.Dialog">
<item name="android:windowBackground">@android:color/transparent</item><!--背景透明-->
<item name="android:windowFrame">@null</item><!--边框-->
<item name="android:windowNoTitle">true</item><!--无标题-->
<item name="android:windowIsFloating">true</item><!--是否浮现在activity之上-->
<item name="android:windowIsTranslucent">true</item><!--半透明-->
<item name="android:windowContentOverlay">@null</item><!--内容覆盖 -->
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item><!-- 窗口样式Dialog -->
<item name="android:backgroundDimEnabled">true</item><!--模糊-->
</style>
3、对话框中图片的动画效果
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false"> <!--是否执行一次 false循环执行-->
<item android:drawable="@drawable/dialog_loading1" android:duration="100" />
<item android:drawable="@drawable/dialog_loading2" android:duration="100" />
<item android:drawable="@drawable/dialog_loading3" android:duration="100" />
<item android:drawable="@drawable/dialog_loading4" android:duration="100" />
<item android:drawable="@drawable/dialog_loading5" android:duration="100" />
<item android:drawable="@drawable/dialog_loading6" android:duration="100" />
<item android:drawable="@drawable/dialog_loading7" android:duration="100" />
<item android:drawable="@drawable/dialog_loading8" android:duration="100" />
</animation-list>
4、最后对话框的布局
<pre class="html" name="code"><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/dialog_view"
android:orientation="vertical"
android:layout_width="150dp"
android:layout_height="105dp"
android:background="@drawable/loading_bg"
android:gravity="center"
android:layout_gravity="center"
>
<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@anim/dialog_loading" <!--图片加载 之前设置好的动画文件-->
android:layout_gravity="center"
/>
<TextView
android:id="@+id/tipTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_gravity="center"
android:textColor="@color/white"
android:text="@string/dialog_loading_text" />
</LinearLayout>