package com.example.administrator.searchpicturetool.widght.imageLoader; /** * Created by Administrator on 2016/4/26 0026. */ import android.app.Activity; import android.app.ActivityManager; import android.app.ActivityManager.RunningTaskInfo; import android.app.Application; import android.content.ClipData; import android.content.ClipboardManager; import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; import android.content.SharedPreferences; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.graphics.Bitmap; import android.graphics.Matrix; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.Uri; import android.util.Base64; import android.util.DisplayMetrics; import android.util.Log; import android.util.TypedValue; import android.view.View; import android.view.inputmethod.InputMethodManager; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.URL; import java.net.URLConnection; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.List; /** * 一些小工具集合,包括获取屏幕宽高等 */ public class JUtils { public static String TAG; public static boolean DEBUG = false; private static Context mApplicationContent; public static void initialize(Application app){ mApplicationContent = app.getApplicationContext(); } public static void setDebug(boolean isDebug,String TAG){ JUtils.TAG = TAG; JUtils.DEBUG = isDebug; } public static void Log(String TAG,String text){ if(DEBUG){ Log.i(TAG, text); } } public static void Log(String text){ if(DEBUG){ Log.i(TAG, text); } } public static void Toast(String text){ android.widget.Toast.makeText(mApplicationContent, text, android.widget.Toast.LENGTH_SHORT).show(); } public static void ToastLong(String text){ android.widget.Toast.makeText(mApplicationContent, text, android.widget.Toast.LENGTH_LONG).show(); } /** * dp转px * */ public static int dip2px(float dpValue) { final float scale = mApplicationContent.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); } /** * px转dp */ public static int px2dip(float pxValue) { final float scale = mApplicationContent.getResources().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); } /** * 取屏幕宽度 * @return */ public static int getScreenWidth(){ DisplayMetrics dm = mApplicationContent.getResources().getDisplayMetrics(); return dm.widthPixels; } /** * 取屏幕高度 * @return */ public static int getScreenHeight(){ DisplayMetrics dm = mApplicationContent.getResources().getDisplayMetrics(); return dm.heightPixels-getStatusBarHeight(); } /** * 取屏幕高度包含状态栏高度 * @return */ public static int getScreenHeightWithStatusBar(){ DisplayMetrics dm = mApplicationContent.getResources().getDisplayMetrics(); return dm.heightPixels; } /** * 取导航栏高度 * @return */ public static int getNavigationBarHeight() { int result = 0; int resourceId = mApplicationContent.getResources().getIdentifier("navigation_bar_height", "dimen", "android"); if (resourceId > 0) { result = mApplicationContent.getResources().getDimensionPixelSize(resourceId); } return result; } /** * 取状态栏高度 * @return */ public static int getStatusBarHeight() { int result = 0; int resourceId = mApplicationContent.getResources().getIdentifier("status_bar_height", "dimen", "android"); if (resourceId > 0) { result = mApplicationContent.getResources().getDimensionPixelSize(resourceId); } return result; } public static int getActionBarHeight() { int actionBarHeight = 0; final TypedValue tv = new TypedValue(); if (mApplicationContent.getTheme() .resolveAttribute(android.R.attr.actionBarSize, tv, true)) { actionBarHeight = TypedValue.complexToDimensionPixelSize( tv.data, mApplicationContent.getResources().getDisplayMetrics()); } return actionBarHeight; } /** * 关闭输入法 * @param act */ public static void closeInputMethod(Activity act){ View view = act.getCurrentFocus(); if(view!=null){ ((InputMethodManager)mApplicationContent.getSystemService(Context.INPUT_METHOD_SERVICE)). hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } } /** * 判断应用是否处于后台状态 * @return */ public static boolean isBackground() { ActivityManager am = (ActivityManager) mApplicationContent.getSystemService(Context.ACTIVITY_SERVICE); List<RunningTaskInfo> tasks = am.getRunningTasks(1); if (!tasks.isEmpty()) { ComponentName topActivity = tasks.get(0).topActivity; if (!topActivity.getPackageName().equals(mApplicationContent.getPackageName())) { return true; } } return false; } /** * 复制文本到剪贴板 * @param text */ public static void copyToClipboard(String text){ ClipboardManager cbm = (ClipboardManager) mApplicationContent.getSystemService(Activity.CLIPBOARD_SERVICE); cbm.setPrimaryClip(ClipData.newPlainText(mApplicationContent.getPackageName(), text)); } /** * 获取SharedPreferences * @return SharedPreferences */ public static SharedPreferences getSharedPreference() { return mApplicationContent.getSharedPreferences(mApplicationContent.getPackageName(), Activity.MODE_PRIVATE); } /** * 获取SharedPreferences * @return SharedPreferences */ public static SharedPreferences getSharedPreference(String name) { return mApplicationContent.getSharedPreferences(name, Activity.MODE_PRIVATE); } /** * 获取SharedPreferences * @return SharedPreferences */ public static SharedPreferences getSharedPreference(String name,int mode) { return mApplicationContent.getSharedPreferences(name, mode); } /** * 经纬度测距 * @param jingdu1 * @param weidu1 * @param jingdu2 * @param weidu2 * @return */ public static double distance(double jingdu1, double weidu1, double jingdu2, double weidu2) { double a, b, R; R = 6378137; // 地球半径 weidu1 = weidu1 * Math.PI / 180.0; weidu2 = weidu2 * Math.PI / 180.0; a = weidu1 - weidu2; b = (jingdu1 - jingdu2) * Math.PI / 180.0; double d; double sa2, sb2; sa2 = Math.sin(a / 2.0); sb2 = Math.sin(b / 2.0); d = 2 * R * Math.asin(Math.sqrt(sa2 * sa2 + Math.cos(weidu1) * Math.cos(weidu2) * sb2 * sb2)); return d; } /** * 是否有网络 * @return */ public static boolean isNetWorkAvilable() { ConnectivityManager connectivityManager = (ConnectivityManager) mApplicationContent .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo(); if (activeNetInfo == null || !activeNetInfo.isAvailable()) { return false; } else { return true; } } /** * 取APP版本号 * @return */ public static int getAppVersionCode(){ try { PackageManager mPackageManager = mApplicationContent.getPackageManager(); PackageInfo _info = mPackageManager.getPackageInfo(mApplicationContent.getPackageName(),0); return _info.versionCode; } catch (NameNotFoundException e) { return 0; } } /** * 取APP版本名 * @return */ public static String getAppVersionName(){ try { PackageManager mPackageManager = mApplicationContent.getPackageManager(); PackageInfo _info = mPackageManager.getPackageInfo(mApplicationContent.getPackageName(),0); return _info.versionName; } catch (NameNotFoundException e) { return null; } } public static Bitmap BitmapZoom(Bitmap b, float x, float y) { int w=b.getWidth(); int h=b.getHeight(); float sx=x/w; float sy=y/h; Matrix matrix = new Matrix(); matrix.postScale(sx, sy); Bitmap resizeBmp = Bitmap.createBitmap(b, 0, 0, w, h, matrix, true); return resizeBmp; } public static String MD5(byte[] data) { MessageDigest md5 = null; try { md5 = MessageDigest.getInstance("MD5"); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } md5.update(data); byte[] m = md5.digest();//加密 return Base64.encodeToString(m, Base64.DEFAULT); } public static String getStringFromAssets(String fileName){ try { InputStreamReader inputReader = new InputStreamReader(mApplicationContent.getResources().getAssets().open(fileName) ); BufferedReader bufReader = new BufferedReader(inputReader); String line=""; String Result=""; while((line = bufReader.readLine()) != null) Result += line; return Result; } catch (Exception e) { e.printStackTrace(); } return ""; } public static Uri getUriFromRes(int id){ return Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + mApplicationContent.getResources().getResourcePackageName(id) + "/" + mApplicationContent.getResources().getResourceTypeName(id) + "/" + mApplicationContent.getResources().getResourceEntryName(id)); } public static String sendPost(String url, String param) { PrintWriter out = null; BufferedReader in = null; String result = ""; try { URL realUrl = new URL(url); URLConnection conn = realUrl.openConnection(); conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setDoOutput(true); conn.setDoInput(true); out = new PrintWriter(conn.getOutputStream()); out.print(param); out.flush(); in = new BufferedReader( new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { e.printStackTrace(); } finally { try { if (out != null) { out.close(); } if (in != null) { in.close(); } } catch (IOException ex) { ex.printStackTrace(); } } return result; } }