工欲善其事必先利其器,希望下面的工具類能對你有所幫助,目前比較少,會持續(xù)更新。
1.鍵盤工具類 KeyBoardUtils
public class KeyBoardUtils {
/**
* 自動打開軟鍵盤
*
* @auther css
* created at 2016/4/23 21:58
*/
public static void openKeyboard(Handler mHandler, int s, final Context context) {
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
}
}, s);
}
/**
* 關(guān)閉軟鍵盤
*
* @param mContext 上下文
*/
public static void closeKeybord(Context mContext) {
InputMethodManager imm = (InputMethodManager) mContext
.getSystemService(Context.INPUT_METHOD_SERVICE);
// imm.hideSoftInputFromWindow(mEditText.getWindowToken(), 0);
imm.hideSoftInputFromWindow(null, 0);
}
}
2.屏幕相關(guān)工具類 NetUtils
public class ScreenUtils
{
private ScreenUtils()
{
/* cannot be instantiated */
throw new UnsupportedOperationException("cannot be instantiated");
}
/**
* 獲得屏幕高度
*
* @param context
* @return
*/
public static int getScreenWidth(Context context)
{
WindowManager wm = (WindowManager) context
.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics outMetrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(outMetrics);
return outMetrics.widthPixels;
}
/**
* 獲得屏幕寬度
*
* @param context
* @return
*/
public static int getScreenHeight(Context context)
{
WindowManager wm = (WindowManager) context
.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics outMetrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(outMetrics);
return outMetrics.heightPixels;
}
/**
* 獲得狀態(tài)欄的高度
*
* @param context
* @return
*/
public static int getStatusHeight(Context context)
{
int statusHeight = -1;
try
{
Class<?> clazz = Class.forName("com.android.internal.R$dimen");
Object object = clazz.newInstance();
int height = Integer.parseInt(clazz.getField("status_bar_height")
.get(object).toString());
statusHeight = context.getResources().getDimensionPixelSize(height);
} catch (Exception e)
{
e.printStackTrace();
}
return statusHeight;
}
/**
* 獲取當前屏幕截圖,包含狀態(tài)欄
*
* @param activity
* @return
*/
public static Bitmap snapShotWithStatusBar(Activity activity)
{
View view = activity.getWindow().getDecorView();
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap bmp = view.getDrawingCache();
int width = getScreenWidth(activity);
int height = getScreenHeight(activity);
Bitmap bp = null;
bp = Bitmap.createBitmap(bmp, 0, 0, width, height);
view.destroyDrawingCache();
return bp;
}
/**
* 獲取當前屏幕截圖,不包含狀態(tài)欄
*
* @param activity
* @return
*/
public static Bitmap snapShotWithoutStatusBar(Activity activity)
{
View view = activity.getWindow().getDecorView();
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap bmp = view.getDrawingCache();
Rect frame = new Rect();
activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
int statusBarHeight = frame.top;
int width = getScreenWidth(activity);
int height = getScreenHeight(activity);
Bitmap bp = null;
bp = Bitmap.createBitmap(bmp, 0, statusBarHeight, width, height
- statusBarHeight);
view.destroyDrawingCache();
return bp;
}
}
3.網(wǎng)絡(luò)相關(guān)工具類 NetUtils
/**
* 跟網(wǎng)絡(luò)相關(guān)的工具類
* Created by css on 2016/9/28.
*/
public class NetUtils {
private NetUtils() {
/* cannot be instantiated */
throw new UnsupportedOperationException("cannot be instantiated");
}
public static ConnectivityManager connectivityManager;
public static NetUtils instance;
public static NetUtils getInstance(Context context) {
if (null == instance) {
instance = new NetUtils(context);
}
return instance;
}
public NetUtils(Context context) {
connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
}
/**
* 判斷網(wǎng)絡(luò)是否連接
*
* @param context
* @return
*/
public static boolean isConnected(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (null != connectivity) {
NetworkInfo info = connectivity.getActiveNetworkInfo();
if (null != info && info.isConnected()) {
if (info.getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
return false;
}
/**
* 判斷是否是wifi連接
*/
public static boolean isWifi(Context context) {
ConnectivityManager cm = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm == null)
return false;
return cm.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_WIFI;
}
/**
* 判斷網(wǎng)絡(luò)類型
*
* @return
*/
public static String getNetWorkType() {
NetworkInfo mNetworkInfo = connectivityManager.getActiveNetworkInfo();
if (mNetworkInfo != null) {
if (ConnectivityManager.TYPE_WIFI == mNetworkInfo.getType())
return "WIFI";
if (ConnectivityManager.TYPE_MOBILE == mNetworkInfo.getType()) {
switch (mNetworkInfo.getSubtype()) {
case TelephonyManager.NETWORK_TYPE_HSUPA:
return "HSUPA";
case TelephonyManager.NETWORK_TYPE_UMTS:
return "UMTS";
case TelephonyManager.NETWORK_TYPE_GPRS:
return "GPRS";
case TelephonyManager.NETWORK_TYPE_EDGE:
return "EDGE";
case TelephonyManager.NETWORK_TYPE_CDMA:
return "CDMA";
case TelephonyManager.NETWORK_TYPE_EVDO_0:
return "EVDO_0";
case TelephonyManager.NETWORK_TYPE_HSPA:
return "HSPA";
case TelephonyManager.NETWORK_TYPE_HSDPA:
return "HSDPA";
case TelephonyManager.NETWORK_TYPE_EVDO_A:
return "EVDO_A";
default:
return "unknown";
}
}
}
return "unknown";
}
/**
* 打開網(wǎng)絡(luò)設(shè)置界面
*/
public static void openSetting(Activity activity) {
Intent intent;
if (android.os.Build.VERSION.SDK_INT > 10) {
intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);
} else {
intent = new Intent();
ComponentName component = new ComponentName("com.android.settings", "com.android.settings.WirelessSettings");
intent.setComponent(component);
intent.setAction("android.intent.action.VIEW");
}
activity.startActivity(intent);
}
}
4. 按鈕連擊判斷工具類 ClickUtil
public class ClickUtil {
private static long lastClickTime;
public static boolean isFastDoubleClick() {
long time = System.currentTimeMillis();
long timeD = time - lastClickTime;
if (0 < timeD && timeD < 1000) {
return true;
}
lastClickTime = time;
return false;
}
}
5. Java指定保留小數(shù)位數(shù) DecimalUtils
public class DecimalUtils {
/**
* 按四舍五入保留指定小數(shù)位數(shù),位數(shù)不夠用0補充
* @param o 格式化前的小數(shù)
* @param newScale 保留小數(shù)位數(shù)
* @return 格式化后的小數(shù)
*/
public static String formatDecimalWithZero(Object o, int newScale) {
return String.format("%." + newScale + "f", o);
}
/**
* 按四舍五入保留指定小數(shù)位數(shù),位數(shù)不夠用0補充
* @param d 格式化前的小數(shù)
* @param newScale 保留小數(shù)位數(shù)
* @return 格式化后的小數(shù)
*/
public static String formatDecimalWithZero(double d, int newScale) {
String pattern = "0.";
for (int i = 0; i < newScale; i++) {
pattern += "0";
}
DecimalFormat df = new DecimalFormat(pattern);
return df.format(d);
}
/**
* 按四舍五入保留指定小數(shù)位數(shù),位數(shù)不夠用0補充
* @param f 格式化前的小數(shù)
* @param newScale 保留小數(shù)位數(shù)
* @return 格式化后的小數(shù)
*/
public static String formatDecimalWithZero(float f, int newScale) {
BigDecimal b = new BigDecimal(Float.toString(f));
double d = b.doubleValue();
String pattern = "0.";
for (int i = 0; i < newScale; i++) {
pattern += "0";
}
DecimalFormat df = new DecimalFormat(pattern);
return df.format(d);
}
/**
* 按四舍五入保留指定小數(shù)位數(shù),位數(shù)不夠用0補充
* @param d 格式化前的小數(shù) String形式
* @param newScale 保留小數(shù)位數(shù)
* @return 格式化后的小數(shù)
*/
public static String formatDecimalWithZero(String d, int newScale) {
String pattern = "0.";
for (int i = 0; i < newScale; i++) {
pattern += "0";
}
DecimalFormat df = new DecimalFormat(pattern);
return df.format(Double.valueOf(d));
}
/**
* 按四舍五入保留指定小數(shù)位數(shù),小數(shù)點后僅保留有效位數(shù)
* @param d 格式化前的小數(shù)
* @param newScale 保留小數(shù)位數(shù)
* @return 格式化后的小數(shù)
*/
public static String formatDecimal(double d, int newScale) {
String pattern = "#.";
for (int i = 0; i < newScale; i++) {
pattern += "#";
}
DecimalFormat df = new DecimalFormat(pattern);
return df.format(d);
}
/**
* 按四舍五入保留指定小數(shù)位數(shù),小數(shù)點后僅保留有效位數(shù)
* @param d 格式化前的小數(shù)
* @param newScale 保留小數(shù)位數(shù)
* @return 格式化后的小數(shù)
*/
public static String formatDecimal(String d, int newScale) {
String pattern = "#.";
for (int i = 0; i < newScale; i++) {
pattern += "#";
}
DecimalFormat df = new DecimalFormat(pattern);
return df.format(Double.valueOf(d));
}
/**
* 按指定舍入模式保留指定小數(shù)位數(shù)
* @param d 格式化前的小數(shù)
* @param newScale 保留小數(shù)位數(shù)
* @param roundingMode 舍入模式
* (RoundingMode.UP始終進一/DOWN直接舍棄/
* CEILING正進負舍/FLOOR正舍負進/
* HALF_UP四舍五入/HALF_DOWN五舍六進/
* HALF_EVEN銀行家舍入法/UNNECESSARY拋出異常)
* @return 格式化后的小數(shù)
*/
public static double formatDecimal(double d, int newScale, RoundingMode roundingMode) {
BigDecimal bd = new BigDecimal(d).setScale(newScale, roundingMode);
return bd.doubleValue();
}
/**
* 按指定舍入模式保留指定小數(shù)位數(shù)
* @param d 格式化前的小數(shù)
* @param newScale 保留小數(shù)位數(shù)
* @param roundingMode 舍入模式
* (RoundingMode.UP始終進一/DOWN直接舍棄/
* CEILING正進負舍/FLOOR正舍負進/
* HALF_UP四舍五入/HALF_DOWN五舍六進/
* HALF_EVEN銀行家舍入法/UNNECESSARY拋出異常)
* @return 格式化后的小數(shù)
*/
public static double formatDecimal(String d, int newScale, RoundingMode roundingMode) {
BigDecimal bd = new BigDecimal(Double.valueOf(d)).setScale(newScale, roundingMode);
return bd.doubleValue();
}
}
- 我的博客:博客傳送門