Android开发中常用的工具类整理
发布时间:2020-05-26 02:21:29 所属栏目:Java 来源:互联网
导读:Android开发中常用的工具类整理
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 packagenet.wujingchao.android.utility
importandroid.util.Log;
publicfinalclassL{
privatefinalstaticintLEVEL=5;
privatefinalstaticStringDEFAULT_TAG="L";
privateL(){
thrownewUnsupportedOperationException("Lcannotinstantiated!");
}
publicstaticvoidv(Stringtag,Stringmsg){
if(LEVEL>=5)Log.v(tag==null?DEFAULT_TAG:tag,msg==null?"":msg);
}
publicstaticvoidd(Stringtag,Stringmsg){
if(LEVEL>=4)Log.d(tag==null?DEFAULT_TAG:tag,msg==null?"":msg);
}
publicstaticvoidi(Stringtag,Stringmsg){
if(LEVEL>=3)Log.i(tag==null?DEFAULT_TAG:tag,msg==null?"":msg);
}
publicstaticvoidw(Stringtag,Stringmsg){
if(LEVEL>=2)Log.w(tag==null?DEFAULT_TAG:tag,msg==null?"":msg);
}
publicstaticvoide(Stringtag,Stringmsg){
if(LEVEL>=1)Log.e(tag==null?DEFAULT_TAG:tag,msg==null?"":msg);
}
}
Toastpackagenet.wujingchao.android.utility
importandroid.content.Context;
importandroid.widget.Toast;
publicclassT{
privatefinalstaticbooleanisShow=true;
privateT(){
thrownewUnsupportedOperationException("Tcannotbeinstantiated");
}
publicstaticvoidshowShort(Contextcontext,CharSequencetext){
if(isShow)Toast.makeText(context,text,Toast.LENGTH_SHORT).show();
}
publicstaticvoidshowLong(Contextcontext,Toast.LENGTH_LONG).show();
}
}
网络packagenet.wujingchao.android.utility
importandroid.app.Activity;
importandroid.content.ComponentName;
importandroid.content.Context;
importandroid.content.Intent;
importandroid.net.ConnectivityManager;
importandroid.net.NetworkInfo;
importjavax.net.ssl.HttpsURLConnection;
importjavax.net.ssl.SSLContext;
importjavax.net.ssl.TrustManager;
importjavax.net.ssl.X509TrustManager;
publicclassNetworkUtil{
privateNetworkUtil(){
thrownewUnsupportedOperationException("NetworkUtilcannotbeinstantiated");
}
/**
*判断网络是否连接
*
*/
publicstaticbooleanisConnected(Contextcontext){
ConnectivityManagerconnectivity=(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
if(null!=connectivity){
NetworkInfoinfo=connectivity.getActiveNetworkInfo();
if(null!=info&&info.isConnected()){
if(info.getState()==NetworkInfo.State.CONNECTED){
returntrue;
}
}
}
returnfalse;
}
/**
*判断是否是wifi连接
*/
publicstaticbooleanisWifi(Contextcontext){
ConnectivityManagerconnectivity=(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
if(connectivity==null)returnfalse;
returnconnectivity.getActiveNetworkInfo().getType()==ConnectivityManager.TYPE_WIFI;
}
/**
*打开网络设置界面
*/
publicstaticvoidopenSetting(Activityactivity){
Intentintent=newIntent("/");
ComponentNamecomponentName=newComponentName("com.android.settings","com.android.settings.WirelessSettings");
intent.setComponent(componentName);
intent.setAction("android.intent.action.VIEW");
activity.startActivityForResult(intent,0);
}
/**
*使用SSL不信任的证书
*/
publicstaticvoiduseUntrustedCertificate(){
//Createatrustmanagerthatdoesnotvalidatecertificatechains
TrustManager[]trustAllCerts=newTrustManager[]{
newX509TrustManager(){
publicjava.security.cert.X509Certificate[]getAcceptedIssuers(){
returnnull;
}
publicvoidcheckClientTrusted(
java.security.cert.X509Certificate[]certs,StringauthType){
}
publicvoidcheckServerTrusted(
java.security.cert.X509Certificate[]certs,StringauthType){
}
}
};
//Installtheall-trustingtrustmanager
try{
SSLContextsc=SSLContext.getInstance("SSL");
sc.init(null,trustAllCerts,newjava.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
}catch(Exceptione){
e.printStackTrace();
}
}
}
像素单位转换packagenet.wujingchao.android.utility
importandroid.content.Context;
importandroid.util.TypedValue;
publicclassDensityUtil{
privateDensityUtil(){
thrownewUnsupportedOperationException("DensityUtilcannotbeinstantiated");
}
publicintdip2px(Contextcontext,intdipValue){
finalfloatscale=context.getResources().getDisplayMetrics().density;
return(int)(dipValue*scale+0.5f);
}
publicintpx2dip(Contextcontext,floatpxValue){
finalfloatscale=context.getResources().getDisplayMetrics().density;
return(int)(pxValue/scale+0.5f);
}
publicstaticfloatpx2sp(Contextcontext,floatpxValue){
return(pxValue/context.getResources().getDisplayMetrics().scaledDensity);
}
publicstaticintsp2px(Contextcontext,intspValue){
return(int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,spValue,context.getResources().getDisplayMetrics());
}
}
屏幕packagenet.wujingchao.android.utility
importandroid.app.Activity;
importandroid.content.Context;
importandroid.graphics.Bitmap;
importandroid.graphics.Rect;
importandroid.util.DisplayMetrics;
importandroid.view.View;
importandroid.view.WindowManager;
publicclassScreenUtil{
privateScreenUtil()
{
thrownewUnsupportedOperationException("ScreenUtilcannotbeinstantiated");
}
publicstaticintgetScreenWidth(Contextcontext)
{
WindowManagerwm=(WindowManager)context
.getSystemService(Context.WINDOW_SERVICE);
DisplayMetricsoutMetrics=newDisplayMetrics();
wm.getDefaultDisplay().getMetrics(outMetrics);
returnoutMetrics.widthPixels;
}
publicstaticintgetScreenHeight(Contextcontext){
WindowManagerwm=(WindowManager)context
.getSystemService(Context.WINDOW_SERVICE);
DisplayMetricsoutMetrics=newDisplayMetrics();
wm.getDefaultDisplay().getMetrics(outMetrics);
returnoutMetrics.heightPixels;
}
publicstaticintgetStatusHeight(Contextcontext){
intstatusHeight=-1;
try{
Class<?>clazz=Class.forName("com.android.internal.R$dimen");
Objectobject=clazz.newInstance();
intheight=Integer.parseInt(clazz.getField("status_bar_height")
.get(object).toString());
statusHeight=context.getResources().getDimensionPixelSize(height);
}catch(Exceptione){
e.printStackTrace();
}
returnstatusHeight;
}
/**
*获取当前屏幕截图,包含状态栏
*/
publicstaticBitmapsnapShotWithStatusBar(Activityactivity){
Viewview=activity.getWindow().getDecorView();
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmapbmp=view.getDrawingCache();
intwidth=getScreenWidth(activity);
intheight=getScreenHeight(activity);
Bitmapbp=null;
bp=Bitmap.createBitmap(bmp,0,width,height);
view.destroyDrawingCache();
returnbp;
}
/**
*获取当前屏幕截图,不包含状态栏
*
*/
publicstaticBitmapsnapShotWithoutStatusBar(Activityactivity){
Viewview=activity.getWindow().getDecorView();
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmapbmp=view.getDrawingCache();
Rectframe=newRect();
activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
intstatusBarHeight=frame.top;
intwidth=getScreenWidth(activity);
intheight=getScreenHeight(activity);
Bitmapbp=null;
bp=Bitmap.createBitmap(bmp,statusBarHeight,height
-statusBarHeight);
view.destroyDrawingCache();
returnbp;
}
}
App相关packagenet.wujingchao.android.utility
importandroid.content.Context;
importandroid.content.pm.PackageInfo;
importandroid.content.pm.PackageManager;
publicclassAppUtil{
privateAppUtil(){
thrownewUnsupportedOperationException("AppUtilcannotinstantiated");
}
/**
*获取app版本名
*/
publicstaticStringgetAppVersionName(Contextcontext){
PackageManagerpm=context.getPackageManager();
PackageInfopi;
try{
pi=pm.getPackageInfo(context.getPackageName(),0);
returnpi.versionName;
}catch(PackageManager.NameNotFoundExceptione){
e.printStackTrace();
}
return"";
}
/**
*获取应用程序版本名称信息
*/
publicstaticStringgetVersionName(Contextcontext)
{
try{
PackageManagerpackageManager=context.getPackageManager();
PackageInfopackageInfo=packageManager.getPackageInfo(
context.getPackageName(),0);
returnpackageInfo.versionName;
}catch(PackageManager.NameNotFoundExceptione){
e.printStackTrace();
}
returnnull;
}
/**
*获取app版本号
*/
publicstaticintgetAppVersionCode(Contextcontext){
PackageManagerpm=context.getPackageManager();
PackageInfopi;
try{
pi=pm.getPackageInfo(context.getPackageName(),0);
returnpi.versionCode;
}catch(PackageManager.NameNotFoundExceptione){
e.printStackTrace();
}
return0;
}
}
键盘packagenet.wujingchao.android.utility
importandroid.content.Context;
importandroid.view.inputmethod.InputMethodManager;
importandroid.widget.EditText;
publicclassKeyBoardUtil{
privateKeyBoardUtil(){
thrownewUnsupportedOperationException("KeyBoardUtilcannotbeinstantiated");
}
/**
*打卡软键盘
*/
publicstaticvoidopenKeybord(EditTextmEditText,ContextmContext){
InputMethodManagerimm=(InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(mEditText,InputMethodManager.RESULT_SHOWN);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,InputMethodManager.HIDE_IMPLICIT_ONLY);
}
/**
*关闭软键盘
*/
publicstaticvoidcloseKeybord(EditTextmEditText,ContextmContext){
InputMethodManagerimm=(InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mEditText.getWindowToken(),0);
}
}
文件上传下载packagenet.wujingchao.android.utility
importandroid.content.Context;
importandroid.os.Environment;
importjava.io.ByteArrayOutputStream;
importjava.io.DataOutputStream;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.OutputStream;
importjava.net.HttpURLConnection;
importjava.net.MalformedURLException;
importjava.net.ProtocolException;
importjava.net.URL;
importjava.util.UUID;
importcom.mixiaofan.App;
publicclassDownloadUtil{
privatestaticfinalintTIME_OUT=30*1000;//超时时间
privatestaticfinalStringCHARSET="utf-8";//设置编码
privateDownloadUtil(){
thrownewUnsupportedOperationException("DownloadUtilcannotbeinstantiated");
}
/**
*@paramfile上传文件
*@paramRequestURL上传文件URL
*@return服务器返回的信息,如果出错则返回为null
*/
publicstaticStringuploadFile(Filefile,StringRequestURL){
StringBOUNDARY=UUID.randomUUID().toString();//边界标识随机生成StringPREFIX="--",LINE_END="rn";
StringPREFIX="--",LINE_END="rn";
StringCONTENT_TYPE="multipart/form-data";//内容类型
try{
URLurl=newURL(RequestURL);
HttpURLConnectionconn=(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){
/***当文件不为空,把文件包装并且上传*/
OutputStreamoutputSteam=conn.getOutputStream();
DataOutputStreamdos=newDataOutputStream(outputSteam);
StringBuffersb=newStringBuffer();
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());
InputStreamis=newFileInputStream(file);
byte[]bytes=newbyte[1024];
intlen;
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=成功
*当响应成功,获取响应的流
*/
ByteArrayOutputStreambos=newByteArrayOutputStream();
InputStreamresultStream=conn.getInputStream();
len=-1;
byte[]buffer=newbyte[1024*8];
while((len=resultStream.read(buffer))!=-1){
bos.write(buffer,len);
}
resultStream.close();
bos.flush();
bos.close();
Stringinfo=newString(bos.toByteArray());
intres=conn.getResponseCode();
if(res==200){
returninfo;
}else{
returnnull;
}
}
}catch(MalformedURLExceptione){
e.printStackTrace();
}catch(ProtocolExceptione){
e.printStackTrace();
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
returnnull;
}
publicstaticbyte[]download(StringurlStr){
HttpURLConnectionconn=null;
InputStreamis=null;
byte[]result=null;
ByteArrayOutputStreambos=null;
try{
URLurl=newURL(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=newbyte[1024*8];
intlen;
bos=newByteArrayOutputStream();
while((len=is.read(buffer))!=-1){
bos.write(buffer,len);
}
bos.flush();
result=bos.toByteArray();
}
}catch(MalformedURLExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}finally{
try{
if(bos!=null){
bos.close();
}
if(is!=null){
is.close();
}
if(conn!=null)conn.disconnect();
}catch(IOExceptione){
e.printStackTrace();
}
}
returnresult;
}
/**
*获取缓存文件
*/
publicstaticFilegetDiskCacheFile(Contextcontext,Stringfilename,booleanisExternal){
if(isExternal&&(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))){
returnnewFile(context.getExternalCacheDir(),filename);
}else{
returnnewFile(context.getCacheDir(),filename);
}
}
/**
*获取缓存文件目录
*/
publicstaticFilegetDiskCacheDirectory(Contextcontext){
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
returncontext.getExternalCacheDir();
}else{
returncontext.getCacheDir();
}
}
}
加密packagenet.wujingchao.android.utility
importjava.security.MessageDigest;
importjava.security.NoSuchAlgorithmException;
publicclassCipherUtil{
privateCipherUtil(){
}
//字节数组转化为16进制字符串
publicstaticStringbyteArrayToHex(byte[]byteArray){
char[]hexDigits={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char[]resultCharArray=newchar[byteArray.length*2];
intindex=0;
for(byteb:byteArray){
resultCharArray[index++]=hexDigits[b>>>4&0xf];
resultCharArray[index++]=hexDigits[b&0xf];
}
returnnewString(resultCharArray);
}
//字节数组md5算法
publicstaticbyte[]md5(byte[]bytes){
try{
MessageDigestmessageDigest=MessageDigest.getInstance("MD5");
messageDigest.update(bytes);
returnmessageDigest.digest();
}catch(NoSuchAlgorithmExceptione){
e.printStackTrace();
}
returnnull;
}
}
时间packagenet.wujingchao.android.utility
importjava.text.SimpleDateFormat;
importjava.util.Date;
publicclassDateUtil{
//转换中文对应的时段
publicstaticStringconvertNowHour2CN(Datedate){
SimpleDateFormatsdf=newSimpleDateFormat("HH");
StringhourString=sdf.format(date);
inthour=Integer.parseInt(hourString);
if(hour<6){
return"凌晨";
}elseif(hour>=6&&hour<12){
return"早上";
}elseif(hour==12){
return"中午";
}elseif(hour>12&&hour<=18){
return"下午";
}elseif(hour>=19){
return"晚上";
}
return"";
}
//剩余秒数转换
publicstaticStringconvertSecond2Day(inttime){
intday=time/86400;
inthour=(time-86400*day)/3600;
intmin=(time-86400*day-3600*hour)/60;
intsec=(time-86400*day-3600*hour-60*min);
StringBuildersb=newStringBuilder();
sb.append(day);
sb.append("天");
sb.append(hour);
sb.append("时");
sb.append(min);
sb.append("分");
sb.append(sec);
sb.append("秒");
returnsb.toString();
}
}
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
