package com.example.administrator.ximengjianyu.utils; import android.app.Activity; import android.app.ProgressDialog; import android.content.Context; import android.support.v4.app.FragmentActivity; import android.util.DisplayMetrics; import android.util.Log; import android.view.WindowManager; import java.util.ArrayList; import java.util.List; public class CoreUtil { //加载对话框 private static ProgressDialog pd; private static float sDensity = 0; static List list = new ArrayList(); /** * 把所有打开的activity加进集合 * @param fActivity */ public void addToActivityList(FragmentActivity fActivity){ if(!list.contains(fActivity)){ list.add(fActivity); } } /** * 关闭activity集合 */ public void finishActivityList(){ Log.e("CoreUtl","activity集合大小-----》》"+list.size()); for (int i = 0; i < list.size(); i++) { Log.e("CoreUtl","被关闭fragmentActivity-----》》"+list.get(i)); list.get(i).finish(); } list.clear(); } /** * 关闭activity 并杀死进程。 */ public void exitApp(){ for (FragmentActivity activity : list) { activity.finish(); Log.e("CoreUtl","exitApp:-----》》"+activity); } list.clear(); Log.e("CoreUtl","android.os.Process.killProcess(android.os.Process.myPid());"); //杀死进程 android.os.Process.killProcess(android.os.Process.myPid()); } /** * 开启加载提示对话款 */ public void showProDialog(Context context) { if(pd == null ){ pd = new ProgressDialog(context); pd.setMessage("加载中,请稍后..."); pd.setCancelable(false); } if(pd.isShowing()){ // pd.dismiss(); return; } pd.show(); } /** * 关闭加载提示对话款 */ public void dismissProDialog() { if(pd != null ){ pd.dismiss(); } } /** * 将sp值转换为px值,保证文字大小不变 * @param context * @param spValue * @return */ public int spToPixel(Context context, float spValue) { final float fontScale = context.getResources().getDisplayMetrics().scaledDensity; return (int) (spValue * fontScale + 0.5f); } /** * dp转换为像素 * @param context * @param nDip * @return */ public static int dipToPixel(Context context, int nDip) { if (sDensity == 0) { final WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); DisplayMetrics dm = new DisplayMetrics(); wm.getDefaultDisplay().getMetrics(dm); sDensity = dm.density; } return (int) (sDensity * nDip); } /** * 获取屏幕 宽 高 * @param activity * @return 数组 0 为宽度 1 为高度 */ public int[] getDisplay(Activity activity){ int[] display = new int[2]; DisplayMetrics dm = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getMetrics(dm); display[0] = dm.widthPixels; display[1] = dm.heightPixels; return display; } }