Android开发中常用的工具类整理
发布时间:2020-12-14 23:29:07 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 package?net.wujingchao.android.utilityimport?android.util.Log;public?final?class?L?{????private?final?static?int?LEVEL?=?5;????private?final
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 package?net.wujingchao.android.utility import?android.util.Log; public?final?class?L?{ ????private?final?static?int?LEVEL?=?5; ????private?final?static?String?DEFAULT_TAG?=?"L"; ????private?L()?{ ????????throw?new?UnsupportedOperationException("L?cannot?instantiated!"); ????} ????public?static?void?v(String?tag,String?msg)?{ ????????if(LEVEL?>=?5)Log.v(tag?==?null???DEFAULT_TAG:tag,msg?==?null?"":msg); ????} ????public?static?void?d(String?tag,String?msg)?{ ????????if(LEVEL?>=?4)Log.d(tag?==?null???DEFAULT_TAG:tag,msg?==?null?"":msg); ????} ????public?static?void?i(String?tag,String?msg)?{ ????????if(LEVEL?>=?3)Log.i(tag?==?null???DEFAULT_TAG:tag,msg?==?null?"":msg); ????} ????public?static?void?w(String?tag,String?msg)?{ ????????if(LEVEL?>=?2)Log.w(tag?==?null???DEFAULT_TAG:tag,msg?==?null?"":msg); ????} ????public?static?void?e(String?tag,String?msg)?{ ????????if(LEVEL?>=?1)Log.e(tag?==?null???DEFAULT_TAG:tag,msg?==?null?"":msg); ????} } Toastpackage?net.wujingchao.android.utility import?android.content.Context; import?android.widget.Toast; public?class?T?{ ????private?final?static?boolean?isShow?=?true; ????private?T(){ ????????throw?new?UnsupportedOperationException("T?cannot?be?instantiated"); ????} ????public?static?void?showShort(Context?context,CharSequence?text)?{ ????????if(isShow)Toast.makeText(context,text,Toast.LENGTH_SHORT).show(); ????} ????public?static?void?showLong(Context?context,Toast.LENGTH_LONG).show(); ????} } 网络package?net.wujingchao.android.utility import?android.app.Activity; import?android.content.ComponentName; import?android.content.Context; import?android.content.Intent; import?android.net.ConnectivityManager; import?android.net.NetworkInfo; import?javax.net.ssl.HttpsURLConnection; import?javax.net.ssl.SSLContext; import?javax.net.ssl.TrustManager; import?javax.net.ssl.X509TrustManager; public?class?NetworkUtil?{ ???? ????private?NetworkUtil()?{ ????????throw?new?UnsupportedOperationException("NetworkUtil?cannot?be?instantiated"); ????} ????/** ?????*?判断网络是否连接 ?????* ?????*/ ????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?connectivity?=?(ConnectivityManager)?context.getSystemService(Context.CONNECTIVITY_SERVICE); ????????if?(connectivity?==?null)?return?false; ????????return?connectivity.getActiveNetworkInfo().getType()?==?ConnectivityManager.TYPE_WIFI; ????} ????/** ?????*?打开网络设置界面 ?????*/ ????public?static?void?openSetting(Activity?activity)?{ ????????Intent?intent?=?new?Intent("/"); ????????ComponentName?componentName?=?new?ComponentName("com.android.settings","com.android.settings.WirelessSettings"); ????????intent.setComponent(componentName); ????????intent.setAction("android.intent.action.VIEW"); ????????activity.startActivityForResult(intent,?0); ????} ????/** ?????*?使用SSL不信任的证书 ?????*/ ????public?static??void?useUntrustedCertificate()?{ ????????//?Create?a?trust?manager?that?does?not?validate?certificate?chains ????????TrustManager[]?trustAllCerts?=?new?TrustManager[]{ ????????????????new?X509TrustManager()?{ ????????????????????public?java.security.cert.X509Certificate[]?getAcceptedIssuers()?{ ????????????????????????return?null; ????????????????????} ????????????????????public?void?checkClientTrusted( ????????????????????????????java.security.cert.X509Certificate[]?certs,?String?authType)?{ ????????????????????} ????????????????????public?void?checkServerTrusted( ????????????????????????????java.security.cert.X509Certificate[]?certs,?String?authType)?{ ????????????????????} ????????????????} ????????}; ????????//?Install?the?all-trusting?trust?manager ????????try?{ ????????????SSLContext?sc?=?SSLContext.getInstance("SSL"); ????????????sc.init(null,?trustAllCerts,?new?java.security.SecureRandom()); ????????????HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); ????????}?catch?(Exception?e)?{ ???????????e.printStackTrace(); ????????} ????} } 像素单位转换package?net.wujingchao.android.utility import?android.content.Context; import?android.util.TypedValue; public?class?DensityUtil?{ ????private?DensityUtil()?{ ????????throw?new?UnsupportedOperationException("DensityUtil?cannot?be?instantiated"); ????} ????public?int?dip2px(Context?context,int?dipValue)?{ ????????final?float?scale?=?context.getResources().getDisplayMetrics().density; ????????return?(int)(dipValue*scale?+?0.5f); ????} ????public?int?px2dip(Context?context,float?pxValue)?{ ????????final?float?scale?=?context.getResources().getDisplayMetrics().density; ????????return?(int)(pxValue/scale?+?0.5f); ????} ????public?static?float?px2sp(Context?context,?float?pxValue){ ????????return?(pxValue?/?context.getResources().getDisplayMetrics().scaledDensity); ????} ????public?static?int?sp2px(Context?context,?int?spValue){ ????????return?(int)?TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,????????????????spValue,?context.getResources().getDisplayMetrics()); ????} } 屏幕package?net.wujingchao.android.utility import?android.app.Activity; import?android.content.Context; import?android.graphics.Bitmap; import?android.graphics.Rect; import?android.util.DisplayMetrics; import?android.view.View; import?android.view.WindowManager; public?class?ScreenUtil?{ ????private?ScreenUtil() ????{ ????????throw?new?UnsupportedOperationException("ScreenUtil?cannot?be?instantiated"); ????} ????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; ????} ????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; ????} ????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; ????} ????/** ?????*?获取当前屏幕截图,包含状态栏 ?????*/ ????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,?width,?height); ????????view.destroyDrawingCache(); ????????return?bp; ????} ????/** ?????*?获取当前屏幕截图,不包含状态栏 ?????* ?????*/ ????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,?statusBarHeight,?height ????????????????-?statusBarHeight); ????????view.destroyDrawingCache(); ????????return?bp; ????} } App相关package?net.wujingchao.android.utility import?android.content.Context; import?android.content.pm.PackageInfo; import?android.content.pm.PackageManager; public?class?AppUtil?{ ????private?AppUtil()?{ ????????throw?new?UnsupportedOperationException("AppUtil?cannot?instantiated"); ????} ????/** ?????*?获取app版本名 ?????*/ ????public?static?String?getAppVersionName(Context?context){ ????????PackageManager?pm?=?context.getPackageManager(); ????????PackageInfo?pi; ????????try?{ ????????????pi?=?pm.getPackageInfo(context.getPackageName(),0); ????????????return?pi.versionName; ????????}?catch?(PackageManager.NameNotFoundException?e)?{ ????????????e.printStackTrace(); ????????} ????????return?""; ????} ????/** ?????*?获取应用程序版本名称信息 ?????*/ ????public?static?String?getVersionName(Context?context) ????{ ????????try{ ????????????PackageManager?packageManager?=?context.getPackageManager(); ????????????PackageInfo?packageInfo?=?packageManager.getPackageInfo( ????????????????????context.getPackageName(),?0); ????????????return?packageInfo.versionName; ????????}catch?(PackageManager.NameNotFoundException?e)?{ ????????????e.printStackTrace(); ????????} ????????return?null; ????} ????/** ?????*?获取app版本号 ?????*/ ????public?static?int?getAppVersionCode(Context?context){ ????????PackageManager?pm?=?context.getPackageManager(); ????????PackageInfo?pi; ????????try?{ ????????????pi?=?pm.getPackageInfo(context.getPackageName(),0); ????????????return?pi.versionCode; ????????}?catch?(PackageManager.NameNotFoundException?e)?{ ????????????e.printStackTrace(); ????????} ????????return?0; ????} } 键盘package?net.wujingchao.android.utility import?android.content.Context; import?android.view.inputmethod.InputMethodManager; import?android.widget.EditText; public?class?KeyBoardUtil{ ????private?KeyBoardUtil(){ ????????throw?new?UnsupportedOperationException("KeyBoardUtil?cannot?be?instantiated"); ????} ????/** ?????*?打卡软键盘 ?????*/ ????public?static?void?openKeybord(EditText?mEditText,?Context?mContext){ ????????InputMethodManager?imm?=?(InputMethodManager)?mContext.getSystemService(Context.INPUT_METHOD_SERVICE); ????????imm.showSoftInput(mEditText,?InputMethodManager.RESULT_SHOWN); ????????imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,InputMethodManager.HIDE_IMPLICIT_ONLY); ????} ????/** ?????*?关闭软键盘 ?????*/ ????public?static?void?closeKeybord(EditText?mEditText,?Context?mContext)?{ ????????InputMethodManager?imm?=?(InputMethodManager)?mContext.getSystemService(Context.INPUT_METHOD_SERVICE); ????????imm.hideSoftInputFromWindow(mEditText.getWindowToken(),?0); ????} } 文件上传下载package?net.wujingchao.android.utility import?android.content.Context; import?android.os.Environment; import?java.io.ByteArrayOutputStream; import?java.io.DataOutputStream; import?java.io.File;? import?java.io.FileInputStream; import?java.io.FileNotFoundException; import?java.io.IOException; import?java.io.InputStream;? import?java.io.OutputStream; import?java.net.HttpURLConnection; import?java.net.MalformedURLException; import?java.net.ProtocolException; import?java.net.URL; import?java.util.UUID; import?com.mixiaofan.App; public?class?DownloadUtil?{ ?private?static?final?int?TIME_OUT?=?30*1000;?//超时时间 ?private?static?final?String?CHARSET?=?"utf-8";?//设置编码 ?private?DownloadUtil()?{ ???? throw?new?UnsupportedOperationException("DownloadUtil?cannot?be?instantiated"); ?} ????/** ?????*?@param?file??上传文件 ?????*?@param?RequestURL?上传文件URL ?????*?@return?服务器返回的信息,如果出错则返回为null ?????*/ ?public?static?String?uploadFile(File?file,String?RequestURL)?{ ?String?BOUNDARY?=?UUID.randomUUID().toString();?//边界标识?随机生成?String?PREFIX?=?"--"?,?LINE_END?=?"rn"; ?????????String?PREFIX?=?"--"?,?LINE_END?=?"rn"; ?????????String?CONTENT_TYPE?=?"multipart/form-data";?//内容类型 ?try?{ ?URL?url?=?new?URL(RequestURL); ?HttpURLConnection?conn?=?(HttpURLConnection)?url.openConnection(); ?????????????conn.setReadTimeout(TIME_OUT); ?????????????conn.setConnectTimeout(TIME_OUT); ?????????????conn.setDoInput(true);?//允许输入流 ?conn.setDoOutput(true);?//允许输出流 ?conn.setUseCaches(false);?//不允许使用缓存? ?conn.setRequestMethod("POST");?//请求方式? ?conn.setRequestProperty("Charset",?CHARSET); ?????????????conn.setRequestProperty("Cookie",?"PHPSESSID="?+?App.getSessionId()); ?//设置编码? ?conn.setRequestProperty("connection",?"keep-alive");? ?conn.setRequestProperty("Content-Type",?CONTENT_TYPE?+?";boundary="?+?BOUNDARY); ?if(file!=null)?{? ?????????????????????/**?*?当文件不为空,把文件包装并且上传?*/ ?????????????????????OutputStream?outputSteam=conn.getOutputStream(); ?????????????????????DataOutputStream?dos?=?new?DataOutputStream(outputSteam); ?????????????????????StringBuffer?sb?=?new?StringBuffer(); ?????????????????????sb.append(PREFIX); ?????????????????????sb.append(BOUNDARY);?sb.append(LINE_END); ?????????????????????/** ?????????????????????*?这里重点注意: ?????????????????????*?name里面的值为服务器端需要key?只有这个key?才可以得到对应的文件 ?????????????????????*?filename是文件的名字,包含后缀名的?比如:abc.png ?????????????????????*/ ?????????????????????sb.append("Content-Disposition:?form-data;?name="img";?filename=""+file.getName()+"""+LINE_END); ?????????????????????sb.append("Content-Type:?application/octet-stream;?charset="+CHARSET+LINE_END); ?????????????????????sb.append(LINE_END); ?????????????????????dos.write(sb.toString().getBytes()); ?????????????????????InputStream?is?=?new?FileInputStream(file); ?????????????????????byte[]?bytes?=?new?byte[1024]; ?????????????????????int?len; ?????????????????????while((len=is.read(bytes))!=-1) ?????????????????????{ ????????????????????????dos.write(bytes,?len); ?????????????????????} ?????????????????????is.close(); ?????????????????????dos.write(LINE_END.getBytes()); ?????????????????????byte[]?end_data?=?(PREFIX+BOUNDARY+PREFIX+LINE_END).getBytes(); ?????????????????????dos.write(end_data); ?????????????????????dos.flush(); ?????????????????????/** ?????????????????????*?获取响应码?200=成功 ?????????????????????*?当响应成功,获取响应的流 ?????????????????????*/ ?????????????????????ByteArrayOutputStream?bos?=?new?ByteArrayOutputStream(); ?????????????????????InputStream?resultStream?=?conn.getInputStream(); ?????????????????????len?=?-1; ?????????????????????byte?[]?buffer?=?new?byte[1024*8]; ?????????????????????while((len?=?resultStream.read(buffer))?!=?-1)?{ ?????????????????????????bos.write(buffer,len); ?????????????????????} ?????????????????????resultStream.close(); ?????????????????????bos.flush(); ?????????????????????bos.close(); ?????????????????????String?info?=?new?String(bos.toByteArray()); ?????????????????????int?res?=?conn.getResponseCode(); ?????????????????????if(res==200){ ????????????????????????return?info; ?????????????????????}else?{ ?????????????????????????return?null; ?????????????????????} ????} ???????????????}?catch?(MalformedURLException?e)?{ ????????????????????e.printStackTrace(); ???????????????}?catch?(ProtocolException?e)?{ ????????????????????e.printStackTrace(); ???????????????}?catch?(FileNotFoundException?e)?{ ????????????????????e.printStackTrace(); ???????????????}?catch?(IOException?e)?{ ?????????????????????e.printStackTrace(); ???????????????} ?????????return?null; ?} ?????public?static?byte[]?download(String?urlStr)?{ ????????????HttpURLConnection?conn?=?null; ????????????InputStream?is?=?null; ????????????byte[]?result?=?null; ????????????ByteArrayOutputStream?bos?=?null; ????????????try?{ ????????????????URL?url?=?new?URL(urlStr); ????????????????conn?=?(HttpURLConnection)?url.openConnection(); ????????????????conn.setRequestMethod("GET"); ????????????????conn.setConnectTimeout(TIME_OUT); ????????????????conn.setReadTimeout(TIME_OUT); ????????????????conn.setDoInput(true); ????????????????conn.setUseCaches(false);//不使用缓存 ????????????????if(conn.getResponseCode()?==?200)?{ ????????????????????is?=?conn.getInputStream(); ????????????????????byte?[]?buffer?=?new?byte[1024*8]; ????????????????????int?len; ????????????????????bos?=?new?ByteArrayOutputStream(); ????????????????????while((len?=?is.read(buffer))?!=?-1)?{ ????????????????????????bos.write(buffer,len); ????????????????????} ????????????????????bos.flush(); ????????????????????result?=?bos.toByteArray(); ????????????????} ????????????}?catch?(MalformedURLException?e)?{ ????????????????e.printStackTrace(); ????????????}?catch?(IOException?e)?{ ????????????????e.printStackTrace(); ????????????}?finally?{ ????????????????try?{ ????????????????????if(bos?!=?null){ ????????????????????????bos.close(); ????????????????????} ????????????????????if?(is?!=?null)?{ ????????????????????????is.close(); ????????????????????} ????????????????????if?(conn?!=?null)conn.disconnect(); ????????????????}?catch?(IOException?e)?{ ????????????????????e.printStackTrace(); ????????????????} ????????????} ????????????return?result; ????????} ????/** ?????*?获取缓存文件 ?????*/ ?????public?static?File?getDiskCacheFile(Context?context,String?filename,boolean?isExternal)?{ ????????if(isExternal?&&?(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)))?{ ????????????return?new?File(context.getExternalCacheDir(),filename); ????????}else?{ ????????????return?new?File(context.getCacheDir(),filename); ????????} ????} ????/** ?????*?获取缓存文件目录 ?????*/ ?????public?static?File?getDiskCacheDirectory(Context?context)?{ ????????if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))?{ ????????????return?context.getExternalCacheDir(); ????????}else?{ ????????????return?context.getCacheDir(); ????????} ????} ?} 加密package?net.wujingchao.android.utility import?java.security.MessageDigest; import?java.security.NoSuchAlgorithmException; public?class?CipherUtil?{? ????private?CipherUtil()?{ ????} ????//字节数组转化为16进制字符串 ????public?static?String?byteArrayToHex(byte[]?byteArray)?{ ????????char[]?hexDigits?=?{'0','1','2','3','4','5','6','7','8','9',?'A','B','C','D','E','F'?}; ????????char[]?resultCharArray?=new?char[byteArray.length?*?2]; ????????int?index?=?0; ????????for?(byte?b?:?byteArray)?{ ????????????resultCharArray[index++]?=?hexDigits[b>>>?4?&?0xf]; ????????????resultCharArray[index++]?=?hexDigits[b?&?0xf]; ????????} ????????return?new?String(resultCharArray); ????} ????//字节数组md5算法 ????public?static?byte[]?md5?(byte?[]?bytes)?{ ????????try?{ ????????????MessageDigest?messageDigest?=?MessageDigest.getInstance("MD5"); ????????????messageDigest.update(bytes); ????????????return?messageDigest.digest(); ????????}?catch?(NoSuchAlgorithmException?e)?{ ????????????e.printStackTrace(); ????????} ????????return?null; ????} } 时间package?net.wujingchao.android.utility import?java.text.SimpleDateFormat; import?java.util.Date; public?class?DateUtil?{ ????//转换中文对应的时段 ????public?static?String?convertNowHour2CN(Date?date)?{ ????????SimpleDateFormat?sdf?=?new?SimpleDateFormat("HH"); ????????String?hourString?=?sdf.format(date); ????????int?hour?=?Integer.parseInt(hourString); ????????if(hour?<?6)?{ ????????????return?"凌晨"; ????????}else?if(hour?>=?6?&&?hour?<?12)?{ ????????????return?"早上"; ????????}else?if(hour?==?12)?{ ????????????return?"中午"; ????????}else?if(hour?>?12?&&?hour?<=18)?{ ????????????return?"下午"; ????????}else?if(hour?>=19)?{ ????????????return?"晚上"; ????????} ????????return?""; ????} ????//剩余秒数转换 ????public?static?String?convertSecond2Day(int?time)?{ ????????int?day?=?time/86400; ????????int?hour?=?(time?-?86400*day)/3600; ????????int?min?=?(time?-?86400*day?-?3600*hour)/60; ????????int?sec?=?(time?-?86400*day?-?3600*hour?-?60*min); ????????StringBuilder?sb?=?new?StringBuilder(); ????????sb.append(day); ????????sb.append("天"); ????????sb.append(hour); ????????sb.append("时"); ????????sb.append(min); ????????sb.append("分"); ????????sb.append(sec); ????????sb.append("秒"); ????????return?sb.toString(); ????} } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |