1. 程式人生 > >Android 基礎工具類 摘自quantan.liu 易讀專案

Android 基礎工具類 摘自quantan.liu 易讀專案

package com.laotan.easyreader.webview;

import android.app.ActivityManager;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.text.TextUtils;
import android.util.DisplayMetrics; import android.view.WindowManager; import android.widget.TextView; import com.blankj.utilcode.utils.Utils; import java.lang.reflect.Field; import java.text.DecimalFormat; import java.text.NumberFormat; import java.util.List; import java.util.Locale; /** * Created by quantan.liu on 2017/3/29.
*/ public class BaseTools { //獲取圖片所在資料夾名稱 public static String getDir(String path) { String subString = path.substring(0, path.lastIndexOf('/')); return subString.substring(subString.lastIndexOf('/') + 1, subString.length()); } public static int getWindowWidth(Context context) { // 獲取螢幕解析度
WindowManager wm = (WindowManager) (context .getSystemService(Context.WINDOW_SERVICE)); DisplayMetrics dm = new DisplayMetrics(); wm.getDefaultDisplay().getMetrics(dm); int mScreenWidth = dm.widthPixels; return mScreenWidth; } public static int getWindowHeigh(Context context) { // 獲取螢幕解析度 WindowManager wm = (WindowManager) (context .getSystemService(Context.WINDOW_SERVICE)); DisplayMetrics dm = new DisplayMetrics(); wm.getDefaultDisplay().getMetrics(dm); int mScreenHeigh = dm.heightPixels; return mScreenHeigh; } //獲得狀態列/通知欄的高度 public static int getStatusBarHeight(Context context) { Class<?> c = null; Object obj = null; Field field = null; int x = 0, statusBarHeight = 0; try { c = Class.forName("com.android.internal.R$dimen"); obj = c.newInstance(); field = c.getField("status_bar_height"); x = Integer.parseInt(field.get(obj).toString()); statusBarHeight = context.getResources().getDimensionPixelSize(x); } catch (Exception e1) { e1.printStackTrace(); } return statusBarHeight; } /** * 使用預設方式顯示貨幣: * 例如:¥12,345.46 預設保留2位小數,四捨五入 * * @param d double * @return String */ public static String formatCurrency(double d) { String s = ""; try { DecimalFormat nf = (DecimalFormat) NumberFormat.getCurrencyInstance(Locale.CHINA); s = nf.format(d); } catch (Exception e) { e.printStackTrace(); return "" + d; } return s; } /** * 去掉無效小數點 ".00" */ public static String formatMoney(double d) { String tmp = formatCurrency(d); if (tmp.endsWith(".00")) { return tmp.substring(0, tmp.length() - 3); } else { return tmp; } } /** * 處於棧頂的Activity名 */ public String getTopActivityName(Context context) { ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List var2 = am.getRunningTasks(1); return ((ActivityManager.RunningTaskInfo) var2.get(0)).topActivity.getClassName(); } public static void setText(String text, TextView textView) { if (textView != null) { if (TextUtils.isEmpty(text)) { textView.setText(""); } else { textView.setText(text); } } } /** * 獲取當前應用的版本號 */ public static String getVersionName() { // 獲取packagemanager的例項 PackageManager packageManager = Utils.getContext().getPackageManager(); // getPackageName()是你當前類的包名,0代表是獲取版本資訊 PackageInfo packInfo = null; try { packInfo = packageManager.getPackageInfo(Utils.getContext().getPackageName(), 0); return packInfo.versionName; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); return "1.0"; } } /** * 實現文字複製功能 * * @param content 複製的文字 */ public static void copy(String content) { // 得到剪貼簿管理器 ClipboardManager cmb = (ClipboardManager) Utils.getContext().getSystemService(Context.CLIPBOARD_SERVICE); cmb.setText(content.trim()); } /** * 使用瀏覽器開啟連結 */ public static void openLink(Context context, String content) { Uri issuesUrl = Uri.parse(content); Intent intent = new Intent(Intent.ACTION_VIEW, issuesUrl); context.startActivity(intent); } }