安卓工具类------->ToolFor9Ge

来源:互联网 发布:怎样学好高中政治知乎 编辑:程序博客网 时间:2024/06/05 01:05
import java.io.BufferedReader;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.lang.ref.WeakReference;import android.app.Activity;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Matrix;import android.graphics.Bitmap.CompressFormat;import android.graphics.Typeface;import android.net.ConnectivityManager;import android.net.NetworkInfo.State;import android.util.Base64;import android.view.View;import android.view.ViewGroup;import android.view.ViewGroup.LayoutParams;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class ToolFor9Ge {// 缩放/裁剪图片 public static Bitmap zoomImg(Bitmap bm, int newWidth ,int newHeight) {  // 获得图片的宽高     int width = bm.getWidth();     int height = bm.getHeight();     // 计算缩放比例     float scaleWidth = ((float) newWidth) / width;     float scaleHeight = ((float) newHeight) / height;     // 取得想要缩放的matrix参数     Matrix matrix = new Matrix();     matrix.postScale(scaleWidth, scaleHeight);     // 得到新的图片     Bitmap newbm = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, true);     return newbm; }  // 判断有无网络链接 public static boolean checkNetworkInfo(Context mContext) {   ConnectivityManager conMan = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);   State mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();   State wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();   if (mobile == State.CONNECTED || mobile == State.CONNECTING)      return true;   if (wifi == State.CONNECTED || wifi == State.CONNECTING)      return true;   return false; }  // 从路径获取文件名 public static String getFileName(String pathandname){  int start=pathandname.lastIndexOf("/");           int end=pathandname.lastIndexOf(".");           if(start!=-1 && end!=-1){               return pathandname.substring(start+1,end);             }else{               return null;           }              }  // 通过路径生成Base64文件 public static String getBase64FromPath(String path) { String base64=""; try { File file = new File(path); byte[] buffer = new byte[(int) file.length() + 100];  @SuppressWarnings("resource")int length = new FileInputStream(file).read(buffer);           base64 = Base64.encodeToString(buffer, 0, length,  Base64.DEFAULT); } catch (IOException e) {e.printStackTrace();} return base64; }  //通过文件路径获取到bitmap public static Bitmap getBitmapFromPath(String path, int w, int h) {BitmapFactory.Options opts = new BitmapFactory.Options();// 设置为ture只获取图片大小opts.inJustDecodeBounds = true;opts.inPreferredConfig = Bitmap.Config.ARGB_8888;// 返回为空BitmapFactory.decodeFile(path, opts);int width = opts.outWidth;int height = opts.outHeight;float scaleWidth = 0.f, scaleHeight = 0.f;if (width > w || height > h) {// 缩放scaleWidth = ((float) width) / w;scaleHeight = ((float) height) / h;}opts.inJustDecodeBounds = false;float scale = Math.max(scaleWidth, scaleHeight);opts.inSampleSize = (int)scale;WeakReference<Bitmap> weak = new WeakReference<Bitmap>(BitmapFactory.decodeFile(path, opts));return Bitmap.createScaledBitmap(weak.get(), w, h, true);}  //把bitmap转换成base64 public static String getBase64FromBitmap(Bitmap bitmap, int bitmapQuality) { ByteArrayOutputStream bStream = new ByteArrayOutputStream(); bitmap.compress(CompressFormat.PNG, bitmapQuality, bStream); byte[] bytes = bStream.toByteArray(); return Base64.encodeToString(bytes, Base64.DEFAULT); }  //把base64转换成bitmap public static Bitmap getBitmapFromBase64(String string) { byte[] bitmapArray = null; try { bitmapArray = Base64.decode(string, Base64.DEFAULT); } catch (Exception e) { e.printStackTrace(); } return BitmapFactory.decodeByteArray(bitmapArray, 0,bitmapArray.length); }  //把Stream转换成String public static String convertStreamToString(InputStream is) { BufferedReader reader = new BufferedReader(new InputStreamReader(is));StringBuilder sb = new StringBuilder();String line = null;try {while ((line = reader.readLine()) != null) {sb.append(line + "/n");}} catch (IOException e) {e.printStackTrace();} finally {try {is.close();} catch (IOException e) {e.printStackTrace();}}return sb.toString(); }  // 修改整个界面所有控件的字体 public static void changeFonts(ViewGroup root,String path, Activity act) {          //path是字体路径 Typeface tf = Typeface.createFromAsset(act.getAssets(),path);          for (int i = 0; i < root.getChildCount(); i++) {              View v = root.getChildAt(i);             if (v instanceof TextView) {                 ((TextView) v).setTypeface(tf);              } else if (v instanceof Button) {                 ((Button) v).setTypeface(tf);              } else if (v instanceof EditText) {                 ((EditText) v).setTypeface(tf);              } else if (v instanceof ViewGroup) {                 changeFonts((ViewGroup) v, path,act);              }         }       }  // 修改整个界面所有控件的字体大小  public static void changeTextSize(ViewGroup root,int size, Activity act) {           for (int i = 0; i < root.getChildCount(); i++) {               View v = root.getChildAt(i);               if (v instanceof TextView) {                  ((TextView) v).setTextSize(size);             } else if (v instanceof Button) {              ((Button) v).setTextSize(size);             } else if (v instanceof EditText) {              ((EditText) v).setTextSize(size);               } else if (v instanceof ViewGroup) {                  changeTextSize((ViewGroup) v,size,act);               }           }        }    // 不改变控件位置,修改控件大小public static void changeWH(View v,int W,int H){LayoutParams params = (LayoutParams)v.getLayoutParams();    params.width = W;    params.height = H;    v.setLayoutParams(params);}// 修改控件的高public static void changeH(View v,int H){LayoutParams params = (LayoutParams)v.getLayoutParams();    params.height = H;    v.setLayoutParams(params);}}

0 0
原创粉丝点击