package com.yamin.reader.view; import android.app.Dialog; import android.content.Context; import android.content.res.Resources; import android.util.DisplayMetrics; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.ImageView; import android.widget.TextView; import com.yamin.reader.R; /** * * @ClassName: CustomDialog * @Description:自定义DIALOg * @author ymcao * @date 2013-6-23 下午2:14:01 * */ public class LoadingDialog extends Dialog { private static int default_width = ViewGroup.LayoutParams.WRAP_CONTENT;; // 默认宽度 private static int default_height = ViewGroup.LayoutParams.WRAP_CONTENT;// 默认高度 private static LoadingDialog customProgressDialog = null; private Context context = null; private ImageView spaceshipImage ; public LoadingDialog(Context context, String msg) { this(context, default_width, default_height, R.style.Theme_dialog, msg); } public LoadingDialog(Context context, int width, int height, int style, String msg) { super(context, style); this.context=context; // set content LayoutInflater inflater = LayoutInflater.from(context); View v = inflater.inflate(R.layout.loading_dialog, null);// 得到加载view spaceshipImage = (ImageView) v.findViewById(R.id.loadingimg); TextView tipTextView = (TextView) v.findViewById(R.id.tipTextView);// 提示文字 tipTextView.setText(msg);// 设置加载信息 setContentView(v); // set window params Window window = getWindow(); WindowManager.LayoutParams params = window.getAttributes(); // set width,height by density and gravity float density = getDensity(context); params.width = (int) (width * density); params.height = (int) (height * density); params.gravity = Gravity.CENTER; window.setAttributes(params); } public void onWindowFocusChanged(boolean hasFocus){ if (customProgressDialog == null){ return; } // 加载动画 Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation( context, R.anim.loading_anim); // 使用ImageView显示动画 spaceshipImage.startAnimation(hyperspaceJumpAnimation); } public static LoadingDialog createDialog(Context context,String msg){ customProgressDialog = new LoadingDialog(context,msg); return customProgressDialog; } private float getDensity(Context context) { Resources resources = context.getResources(); DisplayMetrics dm = resources.getDisplayMetrics(); return dm.density; } }