package com.shuyu.gsyvideoplayer.utils; import android.app.Activity; import android.content.Context; import android.content.ContextWrapper; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.support.v4.app.FragmentActivity; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.support.v7.internal.view.ContextThemeWrapper; import android.util.DisplayMetrics; import android.util.TypedValue; import android.view.WindowManager; import java.io.File; import java.util.Formatter; import java.util.Locale; /** * 公共类 * Created by shuyu on 2016/11/11. */ public class CommonUtil { public static String stringForTime(int timeMs) { if (timeMs <= 0 || timeMs >= 24 * 60 * 60 * 1000) { return "00:00"; } int totalSeconds = timeMs / 1000; int seconds = totalSeconds % 60; int minutes = (totalSeconds / 60) % 60; int hours = totalSeconds / 3600; StringBuilder stringBuilder = new StringBuilder(); Formatter mFormatter = new Formatter(stringBuilder, Locale.getDefault()); if (hours > 0) { return mFormatter.format("%d:%02d:%02d", hours, minutes, seconds).toString(); } else { return mFormatter.format("%02d:%02d", minutes, seconds).toString(); } } public static boolean isWifiConnected(Context context) { ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo wifiNetworkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (wifiNetworkInfo.isConnected()) { return true; } return false; } /** * Get activity from context object * * @param context something * @return object of Activity or null if it is not Activity */ public static Activity scanForActivity(Context context) { if (context == null) return null; if (context instanceof Activity) { return (Activity) context; } else if (context instanceof ContextWrapper) { return scanForActivity(((ContextWrapper) context).getBaseContext()); } return null; } /** * 获取状态栏高度 * * @param context 上下文 * @return 状态栏高度 */ public static int getStatusBarHeight(Context context) { int result = 0; int resourceId = context.getResources() .getIdentifier("status_bar_height", "dimen", "android"); if (resourceId > 0) { result = context.getResources().getDimensionPixelSize(resourceId); } return result; } /** * 获取ActionBar高度 * * @param activity activity * @return ActionBar高度 */ public static int getActionBarHeight(Activity activity) { TypedValue tv = new TypedValue(); if (activity.getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true)) { return TypedValue.complexToDimensionPixelSize(tv.data, activity.getResources().getDisplayMetrics()); } return 0; } public static void hideSupportActionBar(Context context, boolean actionBar, boolean statusBar) { if (actionBar) { if (context instanceof FragmentActivity) { FragmentActivity fragmentActivity = (FragmentActivity)context; android.app.ActionBar ab = fragmentActivity.getActionBar();if (ab != null) { ab.hide(); } } else { ActionBar ab = CommonUtil.getAppCompActivity(context).getSupportActionBar(); if (ab != null) { ab.setShowHideAnimationEnabled(false); ab.hide(); } } } if (statusBar) { if (context instanceof FragmentActivity) { FragmentActivity fragmentActivity = (FragmentActivity)context; fragmentActivity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); } else { CommonUtil.getAppCompActivity(context).getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); } } } public static void showSupportActionBar(Context context, boolean actionBar, boolean statusBar) { if (actionBar) { if (context instanceof FragmentActivity) { FragmentActivity fragmentActivity = (FragmentActivity)context; android.app.ActionBar ab = fragmentActivity.getActionBar();if (ab != null) { ab.show(); } } else { ActionBar ab = CommonUtil.getAppCompActivity(context).getSupportActionBar(); if (ab != null) { ab.setShowHideAnimationEnabled(false); ab.show(); } } } if (statusBar) { if (context instanceof FragmentActivity) { FragmentActivity fragmentActivity = (FragmentActivity)context; fragmentActivity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); } else { CommonUtil.getAppCompActivity(context).getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); } } } /** * Get AppCompatActivity from context * * @param context * @return AppCompatActivity if it's not null */ public static AppCompatActivity getAppCompActivity(Context context) { if (context == null) return null; if (context instanceof AppCompatActivity) { return (AppCompatActivity) context; } else if (context instanceof ContextThemeWrapper) { return getAppCompActivity(((ContextThemeWrapper) context).getBaseContext()); } return null; } /** * dip转为PX */ public static int dip2px(Context context, float dipValue) { float fontScale = context.getResources().getDisplayMetrics().density; return (int) (dipValue * fontScale + 0.5f); } /** * 根据手机的分辨率从 px 的单位 转成为 dp */ public static int px2dip(Context context, float pxValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); } /** * 获取屏幕的宽度px * * @param context 上下文 * @return 屏幕宽px */ public static int getScreenWidth(Context context) { WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); DisplayMetrics outMetrics = new DisplayMetrics();// 创建了一张白纸 windowManager.getDefaultDisplay().getMetrics(outMetrics);// 给白纸设置宽高 return outMetrics.widthPixels; } /** * 获取屏幕的高度px * * @param context 上下文 * @return 屏幕高px */ public static int getScreenHeight(Context context) { WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); DisplayMetrics outMetrics = new DisplayMetrics();// 创建了一张白纸 windowManager.getDefaultDisplay().getMetrics(outMetrics);// 给白纸设置宽高 return outMetrics.heightPixels; } public static void deleteFile(String filePath) { File file = new File(filePath); if (file.exists()) { if (file.isFile()) { file.delete(); } else { String[] filePaths = file.list(); for (String path : filePaths) { deleteFile(filePath + File.separator + path); } file.delete(); } } } }