Android的获取外部存储设备。

   / / 1。这个是获取安卓内置的SD卡。Environment.getExternalStorageDirectory()getAbsolutePath();<pre name="code" class="java">String[] paths =null;StorageManager sm = (StorageManager) this.getSystemService(Context.STORAGE_SERVICE);// 获取sdcard的路径:外置和内置try {paths = (String[]) sm.getClass().getMethod("getVolumePaths", null).invoke(sm, null);} catch (IllegalArgumentException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (InvocationTargetException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (NoSuchMethodException e) {// TODO Auto-generated catch blocke.printStackTrace();}
//      getPath2();Toast.makeText(this, paths[0] +"======"+ paths[1]+ "===="+ paths.length , Toast.LENGTH_LONG).show();

获取SD卡上的图片的缩略图和视频的缩略图

/ ***根据指定的图像路径​​和大小来获取缩略图* 1。使用较小的内存空间,第一次获取的bitmap实际上为null,只是为了读取宽度和高度,*第二次读取的bitmap是根据比例压缩过的图像,第三次读取的bitmap是所要的缩略图。* 2。缩略图对于原图像来讲没有拉伸,这里使用了2.2版本的新工具ThumbnailUtils,使*用这个工具生成的图像不会被拉伸。* @参数IMAGEPATH图像的路径* @参数宽度指定输出图像的宽度* @参数高度指定输出图像的高度* @返回生成的缩略图* /私人点阵图getImageThumbnail(IMAGEPATH字符串,整型宽度,高度诠释){位图位图= NULL;BitmapFactory.Options选项=新BitmapFactory.Options();options.inJustDecodeBounds = TRUE;/ /获取这个图片的宽和高,注意此处的点阵图为空位图= BitmapFactory.decodeFile(IMAGEPATH,期权);options.inJustDecodeBounds = FALSE; / /设为假/ /计算缩放比整型H = options.outHeight;整型W = options.outWidth;整型beWidth = W /宽度;整型beHeight = H /高度;整型是= 1;如果(beWidth <beHeight){是= beWidth;}其他{是= beHeight;}如果(被<= 0){是= 1;}options.inSampleSize =是;/ /重新读入图片,读取缩放后的位图,注意这次要把options.inJustDecodeBounds设为假位图= BitmapFactory.decodeFile(IMAGEPATH,期权);/ /利用ThumbnailUtils来创建缩略图,这里要指定要缩放哪个位图对象/ /位图= ThumbnailUtils.extractThumbnail(位图,宽度,高度,/ / ThumbnailUtils.OPTIONS_RECYCLE_INPUT);返回位图;}/ ***获取视频的缩略图*先通过ThumbnailUtils来创建一个视频的缩略图,然后再利用ThumbnailUtils来生成指定大小的缩略图。*如果想要的缩略图的宽和高都小于MICRO_KIND,则类型要使用MICRO_KIND作为kind的值,* @参数videoPath视频的路径* @参数宽度指定输出视频缩略图的宽度* @参数高度指定输出视频缩略图的高度度* @参数类型的参照MediaStore.Images.Thumbnails类中的常量MINI_KIND和MICRO_KIND。*其中,MINI_KIND:512×384,MICRO_KIND:96×96* @返回指定大小的视频缩略图* /私人点阵图getVideoThumbnail(字符串videoPath,诠释宽度,高度诠释,整型的那种){位图位图= NULL;/ /获取视频的缩略图尝试{位图= ThumbnailUtils.createVideoThumbnail(videoPath,实物);。Toast.makeText(这一点,“W =”+ bitmap.getWidth()+“ -  H =”+ bitmap.getHeight(),Toast.LENGTH_SHORT)的show();位图= ThumbnailUtils.extractThumbnail(位图,宽度,高度,ThumbnailUtils.OPTIONS_RECYCLE_INPUT);}赶上(例外五){。Toast.makeText(这一点,“异常=”+ e.toString(),Toast.LENGTH_SHORT)的show();}返回位图;}

获取手机的IP地址

 / **获取本地的IP经过修改的只获取IPv4的** /公共静态字符串getMyLocalIpAddress(){  尝试{  对于(枚举<NetworkInterface> EN =的NetworkInterface  。getNetworkInterfaces(); en.hasMoreElements();} {  的NetworkInterface INTF = en.nextElement();  对于(枚举<InetAddress> enumIpAddr = intf.getInetAddresses();enumIpAddr.hasMoreElements();} {  InetAddress类InetAddress类= enumIpAddr.nextElement();  如果(!inetAddress.isLoopbackAddress()&&!inetAddress.isLinkLocalAddress()){  返回inetAddress.getHostAddress()的toString();  }  }  }  }赶上(例外){  Log.e(“WifiPreference Ip地址”,ex.toString());  }  返回null;  } / **获取手机的IP 3G WIFI可以NetworkInterface.getHardwareAddress()没修改的获取到的是的IPv6的地址在4.0上* /公共静态字符串getLocalIpAddress(){  尝试{  对于(枚举<NetworkInterface> EN = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();} {  的NetworkInterface INTF = en.nextElement();  对于(枚举<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();} {  InetAddress类InetAddress类= enumIpAddr.nextElement();  如果(!inetAddress.isLoopbackAddress()){  返回inetAddress.getHostAddress()的toString();  }  }  }  }赶上(例外){  Log.e(“AAAA”,ex.toString());  }  返回null;  }  / **通过无线网络获取IP IPv6的* /公共静态字符串GetIpAddress是(上下文CTX){  WifiManager wifi_service =(WifiManager)ctx.getSystemService(Context.WIFI_SERVICE);  DhcpInfo dhcpInfo = wifi_service.getDhcpInfo();  WifiInfo wifiinfo = wifi_service.getConnectionInfo();  System.out.println(“无线信息----->”+ wifiinfo.getIpAddress());  System.out.println(“DHCP信息门户----->”+ Formatter.formatIpAddress(dhcpInfo.gateway));  System.out.println(“DHCP信息网络掩码----->”+ Formatter.formatIpAddress(dhcpInfo.netmask));  / / DhcpInfo中的ip地址是一个整数型的变量,通过格式化程序将其转化为字符串的IP地址  返回Formatter.formatIpAddress(dhcpInfo.ipAddress);  }  / **根据无线信息获取本地的Mac必须打开无线网络的IPv6 ** /公共静态字符串getLocalMacAddressFromWifiInfo(上下文上下文){WifiManager无线=(WifiManager)context.getSystemService(Context.WIFI_SERVICE);  WifiInfo信息= wifi.getConnectionInfo();  返回info.getMacAddress(); }/ ***获取程序的网络环境* /公共静态布尔getNetWorkStatus(上下文上下文){布尔B =真;ConnectivityManager connManager =(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);的NetworkInfo的wifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);的NetworkInfo移动= connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);     如果(!wifi.isConnectedOrConnecting()&&!mobile.isConnectedOrConnecting()){B = FALSE;}返回b;}

贴2张IPV64的图

      

获取手机的相关信息

 StringBuilder phoneInfo = new StringBuilder();  phoneInfo.append("Product: " + android.os.Build.PRODUCT + System.getProperty("line.separator"));  phoneInfo.append( "CPU_ABI: " + android.os.Build.CPU_ABI + System.getProperty("line.separator"));  phoneInfo.append( "TAGS: " + android.os.Build.TAGS + System.getProperty("line.separator"));  phoneInfo.append( "VERSION_CODES.BASE: " + android.os.Build.VERSION_CODES.BASE + System.getProperty("line.separator"));  phoneInfo.append( "MODEL: " + android.os.Build.MODEL + System.getProperty("line.separator"));  phoneInfo.append( "SDK: " + android.os.Build.VERSION.SDK + System.getProperty("line.separator"));  phoneInfo.append( "VERSION.RELEASE: " + android.os.Build.VERSION.RELEASE + System.getProperty("line.separator"));  phoneInfo.append( "DEVICE: " + android.os.Build.DEVICE + System.getProperty("line.separator"));  phoneInfo.append( "DISPLAY: " + android.os.Build.DISPLAY + System.getProperty("line.separator"));  phoneInfo.append( "BRAND: " + android.os.Build.BRAND + System.getProperty("line.separator"));  phoneInfo.append( "BOARD: " + android.os.Build.BOARD + System.getProperty("line.separator"));  phoneInfo.append( "FINGERPRINT: " + android.os.Build.FINGERPRINT + System.getProperty("line.separator"));  phoneInfo.append( "ID: " + android.os.Build.ID + System.getProperty("line.separator"));  phoneInfo.append( "MANUFACTURER: " + android.os.Build.MANUFACTURER + System.getProperty("line.separator"));  phoneInfo.append( "USER: " + android.os.Build.USER + System.getProperty("line.separator"));         TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);   phoneInfo.append("DeviceId(IMEI) = " + tm.getDeviceId() + System.getProperty("line.separator"));    phoneInfo.append("DeviceSoftwareVersion = " + tm.getDeviceSoftwareVersion() + System.getProperty("line.separator"));    phoneInfo.append("Line1Number = " + tm.getLine1Number() + System.getProperty("line.separator"));    phoneInfo.append("NetworkCountryIso = " + tm.getNetworkCountryIso() + System.getProperty("line.separator"));    phoneInfo.append("NetworkOperator = " + tm.getNetworkOperator() + System.getProperty("line.separator"));    phoneInfo.append("NetworkOperatorName = " + tm.getNetworkOperatorName() + System.getProperty("line.separator"));    phoneInfo.append("NetworkType = " + tm.getNetworkType() + System.getProperty("line.separator"));    phoneInfo.append("PhoneType = " + tm.getPhoneType() + System.getProperty("line.separator"));    phoneInfo.append("SimCountryIso = " + tm.getSimCountryIso() + System.getProperty("line.separator"));    phoneInfo.append("SimOperator = " + tm.getSimOperator() + System.getProperty("line.separator"));    phoneInfo.append("SimOperatorName = " + tm.getSimOperatorName() + System.getProperty("line.separator"));    phoneInfo.append("SimSerialNumber = " + tm.getSimSerialNumber() + System.getProperty("line.separator"));    phoneInfo.append("SimState = " + tm.getSimState() + System.getProperty("line.separator"));    phoneInfo.append("SubscriberId(IMSI) = " + tm.getSubscriberId() + System.getProperty("line.separator"));    phoneInfo.append("VoiceMailNumber = " + tm.getVoiceMailNumber() + System.getProperty("line.separator"));

附上2张图

     

经纬度方面的转换

public class ConvertLatlng {// 经纬度度分秒转换为小数public static double convertToDecimal(double du, double fen, double miao) {if (du < 0)return -(Math.abs(du) + (Math.abs(fen) + (Math.abs(miao) / 60)) / 60);return Math.abs(du) + (Math.abs(fen) + (Math.abs(miao) / 60)) / 60;}public static double convertTodecimal(String sdu, String sfen, String smiao) {double du = Double.parseDouble(sdu);double fen = Double.parseDouble(sfen);double miao = Double.parseDouble(smiao);if (du < 0)return -(Math.abs(du) + (Math.abs(fen) + (Math.abs(miao) / 60)) / 60);return Math.abs(du) + (Math.abs(fen) + (Math.abs(miao) / 60)) / 60;}// 以字符串形式输入经纬度的转换public static double convertToDecimalByString(String latlng) {double du = 0;double fen = 0;double miao = 0;if (latlng.indexOf("°") != -1) {du = Double.parseDouble(latlng.substring(0, latlng.indexOf("°")));if (latlng.indexOf("′") != -1) {fen = Double.parseDouble(latlng.substring(latlng.indexOf("°") + 1, latlng.indexOf("′")));if (latlng.indexOf("″") != -1) {miao = Double.parseDouble(latlng.substring(latlng.indexOf("′") + 1, latlng.indexOf("″")));}}}if (du < 0)return -(Math.abs(du) + (fen + (miao / 60)) / 60);return du + (fen + (miao / 60)) / 60;}// 将小数转换为度分秒public static String convertToSexagesimal(double num) {int du = (int) Math.floor(Math.abs(num)); // 获取整数部分double temp = getdPoint(Math.abs(num)) * 60;int fen = (int) Math.floor(temp); // 获取整数部分double miao = getdPoint(temp) * 60;if (num < 0)return "-" + du + "°" + fen + "′" + miao + "″";return du + "°" + fen + "′" + miao + "″";}// 获取小数部分public static double getdPoint(double num) {double d = num;int fInt = (int) d;BigDecimal b1 = new BigDecimal(Double.toString(d));BigDecimal b2 = new BigDecimal(Integer.toString(fInt));double dPoint = b1.subtract(b2).floatValue();return dPoint;}//public void test1() {double convertTodecimal = convertTodecimal("123", "19", "15");System.out.println(convertTodecimal);}
}

获取状态栏的高度

//获取状态栏的高度1Rect frame = new Rect();getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);int statusBarHeight = frame.top;//2.转自别人的,有些手机必须要用下面的方法才能获取到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); Log.v("@@@@@@", "the status bar height is : " + statusBarHeight);} catch (Exception e1) {e1.printStackTrace();} return statusBarHeight;}

判断输入的文本 是否有中文字符

private static final boolean isChinese(char c) {Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {return true;}return false;}public static final boolean isChinese(String strName) {char[] ch = strName.toCharArray();for (int i = 0; i < ch.length; i++) {char c = ch[i];if (isChinese(c)) {return true;}}return false;}

查看手机磁盘空间

  public static long isEnough(){  StatFs statFs = new StatFs(Environment.getExternalStorageDirectory()  .getAbsolutePath());  //sd卡分区数  int blockCounts = statFs.getBlockCount();  Log.e("ray", "blockCounts" + blockCounts);  //sd卡可用分区数  int avCounts = statFs.getAvailableBlocks();  Log.e("ray", "avCounts" + avCounts);  //一个分区数的大小  long blockSize = statFs.getBlockSize();  Log.e("ray", "blockSize" + blockSize);  //sd卡可用空间  long spaceLeft = avCounts * blockSize;  Log.e("ray", "spaceLeft" + spaceLeft);  System.out.println("=spaceLeft"+ spaceLeft);return spaceLeft;}  

默认方法执行日志类,

public final class LogHelper { private static boolean mIsDebugMode = true;//获取堆栈信息会影响性能,发布应用时记得关闭DebugMode private static String mLogTag = "LogHelper"; private static final String CLASS_METHOD_LINE_FORMAT = "%s.%s()  Line:%d  (%s)"; public static void trace() { if (mIsDebugMode) { StackTraceElement traceElement = Thread.currentThread() .getStackTrace()[3];//从堆栈信息中获取当前被调用的方法信息 String logText = String.format(CLASS_METHOD_LINE_FORMAT, traceElement.getClassName(), traceElement.getMethodName(), traceElement.getLineNumber(), traceElement.getFileName()); Log.d(mLogTag, logText);//打印Log } }
} 

系统异常捕捉

/**   * UncaughtException处理类,当程序发生Uncaught异常的时候,有该类来接管程序,并记录发送错误报告.  *  *  需要在Application中注册,为了要在程序启动器就监控整个程序。 */
public class CrashHandler implements UncaughtExceptionHandler {      public static final String TAG = "CrashHandler";      //系统默认的UncaughtException处理类       private Thread.UncaughtExceptionHandler mDefaultHandler;      //CrashHandler实例      private static CrashHandler instance;  //程序的Context对象      private Context mContext;      //用来存储设备信息和异常信息      private Map<String, String> infos = new HashMap<String, String>();      //用于格式化日期,作为日志文件名的一部分      private DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");      /** 保证只有一个CrashHandler实例 */      private CrashHandler() {}      /** 获取CrashHandler实例 ,单例模式 */      public static CrashHandler getInstance() {      if(instance == null)  instance = new CrashHandler();     return instance;      }      /**   * 初始化   */      public void init(Context context) {      mContext = context;      //获取系统默认的UncaughtException处理器      mDefaultHandler = Thread.getDefaultUncaughtExceptionHandler();      //设置该CrashHandler为程序的默认处理器      Thread.setDefaultUncaughtExceptionHandler(this);      }      /**   * 当UncaughtException发生时会转入该函数来处理   */      @Override      public void uncaughtException(Thread thread, Throwable ex) {      if (!handleException(ex) && mDefaultHandler != null) {      //如果用户没有处理则让系统默认的异常处理器来处理      mDefaultHandler.uncaughtException(thread, ex);      } else {      try {      Thread.sleep(3000);      } catch (InterruptedException e) {      Log.e(TAG, "error : ", e);      }      //退出程序      android.os.Process.killProcess(android.os.Process.myPid());      System.exit(1);      }      }      /**   * 自定义错误处理,收集错误信息 发送错误报告等操作均在此完成.   *    * @param ex   * @return true:如果处理了该异常信息;否则返回false.   */      private boolean handleException(Throwable ex) {      if (ex == null) {      return false;      }      //收集设备参数信息       collectDeviceInfo(mContext);      //使用Toast来显示异常信息      new Thread() {      @Override      public void run() {      Looper.prepare();      Toast.makeText(mContext, "很抱歉,程序出现异常,即将退出.", Toast.LENGTH_SHORT).show();      Looper.loop();      }      }.start();      //保存日志文件       saveCatchInfo2File(ex);    return true;      }      /**   * 收集设备参数信息   * @param ctx   */      public void collectDeviceInfo(Context ctx) {      try {      PackageManager pm = ctx.getPackageManager();      PackageInfo pi = pm.getPackageInfo(ctx.getPackageName(), PackageManager.GET_ACTIVITIES);      if (pi != null) {      String versionName = pi.versionName == null ? "null" : pi.versionName;      String versionCode = pi.versionCode + "";      infos.put("versionName", versionName);      infos.put("versionCode", versionCode);      }      } catch (NameNotFoundException e) {      Log.e(TAG, "an error occured when collect package info", e);      }      Field[] fields = Build.class.getDeclaredFields();      for (Field field : fields) {      try {      field.setAccessible(true);      infos.put(field.getName(), field.get(null).toString());      Log.d(TAG, field.getName() + " : " + field.get(null));      } catch (Exception e) {      Log.e(TAG, "an error occured when collect crash info", e);      }      }      }      /**   * 保存错误信息到文件中   *    * @param ex   * @return  返回文件名称,便于将文件传送到服务器   */      private String saveCatchInfo2File(Throwable ex) {      StringBuffer sb = new StringBuffer();      for (Map.Entry<String, String> entry : infos.entrySet()) {      String key = entry.getKey();      String value = entry.getValue();      sb.append(key + "=" + value + "\n");      }      Writer writer = new StringWriter();      PrintWriter printWriter = new PrintWriter(writer);      ex.printStackTrace(printWriter);      Throwable cause = ex.getCause();      while (cause != null) {      cause.printStackTrace(printWriter);      cause = cause.getCause();      }      printWriter.close();      String result = writer.toString();      sb.append(result);      try {      long timestamp = System.currentTimeMillis();      String time = formatter.format(new Date());      String fileName = "crash-" + time + "-" + timestamp + ".log";      if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {      String path = "/mnt/sdcard/crash/";      File dir = new File(path);      if (!dir.exists()) {      dir.mkdirs();      }      FileOutputStream fos = new FileOutputStream(path + fileName);      fos.write(sb.toString().getBytes());    //发送给开发人员  sendCrashLog2PM(path+fileName);  fos.close();      }      return fileName;      } catch (Exception e) {      Log.e(TAG, "an error occured while writing file...", e);      }      return null;      }      /** * 将捕获的导致崩溃的错误信息发送给开发人员 *  * 目前只将log日志保存在sdcard 和输出到LogCat中,并未发送给后台。 */  private void sendCrashLog2PM(String fileName){  if(!new File(fileName).exists()){  Toast.makeText(mContext, "日志文件不存在!", Toast.LENGTH_SHORT).show();  return;  }  FileInputStream fis = null;  BufferedReader reader = null;  String s = null;  try {  fis = new FileInputStream(fileName);  reader = new BufferedReader(new InputStreamReader(fis, "GBK"));  while(true){  s = reader.readLine();  if(s == null) break;  //由于目前尚未确定以何种方式发送,所以先打出log日志。  Log.i("info", s.toString());  }  } catch (FileNotFoundException e) {  e.printStackTrace();  } catch (IOException e) {  e.printStackTrace();  }finally{   // 关闭流  try {  reader.close();  fis.close();  } catch (IOException e) {  e.printStackTrace();  }  }  }
}

根据 资源名称 获取 资源ID

//<span style="color:#333333;"><span style="font-family: Monaco, 'DejaVu sans Mono', 'Bitstream Vera sans Mono', Consolas, 'Courier new', monospace; font-size: 14px; word-wrap: normal; word-break: normal; line-height: 21px;"><span style="word-wrap: normal; word-break: normal;">第一个参数</span></span><span style="font-family: Monaco, 'DejaVu sans Mono', 'Bitstream Vera sans Mono', Consolas, 'Courier new', monospace; font-size: 14px; word-wrap: normal; word-break: normal; line-height: 21px;">格式是:包名 + : + 资源文件夹名 + / +资源名;</span><span style="font-family: Monaco, 'DejaVu sans Mono', 'Bitstream Vera sans Mono', Consolas, 'Courier new', monospace; font-size: 14px; word-wrap: normal; word-break: normal; line-height: 21px;"><span style="word-wrap: normal; word-break: normal;">是这种格式 <wbr>然后其他的可以为null</wbr></span></span></span>
Resources resources = context.getResources();
int indentify = resources.getIdentifier(org.loveandroid.androidtest:drawable/icon",null,null);
if(indentify>0){
icon = resources.getDrawable(indentify);
}    

第一个参数为资源名,第二个为资源属性是ID或者是Drawable,第三个为包名。

Resources resources = context.getResources();
int indentify= getResources().getIdentifier("icon", "drawable", "org.anddev.android.testproject");
 Resources themeResources=null;PackageManager pm=context.getPackageManager();try {themeResources=pm.getResourcesForApplication(packageName);return themeResources.getIdentifier(name, type, packageName);} catch (NameNotFoundException e) {e.printStackTrace();}

android 工具类相关推荐

  1. Android 工具类

    前言 相信用过工具类的各位仁兄都觉得工具类好用,小弟不才,今天斗胆拿出自己感觉比较顺手的工具类. 1.Activity控制类 public class ActivityCollector{//acti ...

  2. Android工具类的整理

    文章目录 android开发的工具类 Acvitity的栈式管理工具 GlideUtils和ImageLoader] ImageSelector Json数据解析工具 ListView自适应高度的方法 ...

  3. android工具类怎么写,用kotlin写了一些android常用的一些工具类

    最近在学习kotlin语言,写了一些android常用的工具类 FileUtils.kt 文件操作类 创建多级文件目录 mkDir(dirPath: String) 创建文件 creatFile(fi ...

  4. 常用的android工具类和库

    这篇博客主要记录我认为比较有用的android开源框架或者工具,我会持续添加,推荐给大家 1.这里面包含了很多的工具类,包括数据校验工具类,文件操作工具类,汉字转拼音工具类等. https://git ...

  5. Android工具类整合

    Android-JSONUtil工具类 常用的Json工具类,包含Json转换成实体.实体转json字符串.list集合转换成json.数组转换成json public class JSONUtil ...

  6. Android 工具类 大全

    AppUtil工具类: 常用APP的工具类,包含版本号.版本名称.安装的应用程序ICON https://blog.csdn.net/houyingshang/article/details/8109 ...

  7. android 图片缓存工具类,Android工具类系列-Glide图片缓存与圆角

    Glide的图片缓存和清除图片缓存 public class GlideCacheUtil { private static GlideCacheUtil inst; public static Gl ...

  8. android 调试好事工具类,Android 工具类之总结 Hua

    import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.IOException; imp ...

  9. 【Android工具类】Activity管理工具类AppManager

    转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 import java.util.Stack;import android.app.Activity; im ...

最新文章

  1. vs2008断点上出现感叹号解决办法
  2. ES6-let const
  3. cpythonjava解释xml_详解python使用lxml操作xml格式文件
  4. 企业架构(三)——联邦企业架构框架(FEAF)
  5. 央行允许银行倒闭破产,那么储户的存款怎么办?
  6. css 下划线_css学习
  7. PowerShell为什么强大
  8. 算法竞赛入门经典(刘汝佳版)例题与解答
  9. 计算机语言t和o,PLC编程语言/操作指令/使用步骤详解
  10. stm32定时器的ETR、CH1N、CH2N、CH3N
  11. 美赛BOOM数学建模1-2蒙特卡洛法
  12. 【螺旋旋转爱心特效】(Html+JS+CSS+效果+全部源代码)
  13. Palo, Palo
  14. 网络工程师----成长之路
  15. 实现Windows下Qt扫描U盘的两种方式
  16. 陌陌其实也是个APP工厂,除了AI换脸ZAO,还有这些
  17. 有点后悔选择了计算机专业!现在学编程,当程序员还有前途吗?
  18. Base64编码/解码VB6超精简版(适用于中、英文)
  19. 【GIS导论】实验四 地形分析
  20. 兔子繁殖问题,兔子有寿命限制

热门文章

  1. LADP 启用SSL开启636端口,实现第三方集成
  2. 基于环视的车位线检测
  3. GPS研究---GPS 坐标系统和时间系统
  4. oracle av rd ms,Oracle AWR报告生成与查看
  5. Windows server 2008服务器怎么修改密码?
  6. ubuntu换内核 reboot后,开机进入busybox,root=UUID=(一串数字),tyy命令行无图形界面,问题解决方案(使用grub的设置)
  7. python中奇妙的dict函数
  8. 蓝色车牌识别OpenCV-Python
  9. vivo2020届春季校园招聘在线编程考试(1)
  10. c 语言123变成321编程,已解决 c语言怎么写逆序数字。如123输出321