加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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);
????}
}

Toast

package?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】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读