安卓工具类------->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
- 安卓工具类------->ToolFor9Ge
- Android ToolFor9Ge-关于图片和控件的工具类
- 安卓工具类
- Util:ToolFor9Ge
- 安卓工具类------->SharedPreferences
- 安卓-LogUtil工具类
- 安卓数据库工具类
- 安卓各种工具类
- 安卓控件工具类
- 安卓权限工具类
- 安卓工具类------->Logcat统一管理类
- 安卓工具类-------->Toast统一管理类
- 安卓开发-工具类的使用
- 安卓 GPS连接信息工具类
- 安卓工具类------->AppUtils.java
- 安卓 自定义的 SharedPreference 工具类
- 安卓快速解析xml工具类
- 安卓文件图片存储工具类
- 约定优于配置
- 极光推送开发(一)
- 二叉排序树
- 欢迎使用CSDN-markdown编辑器
- 并行程序设计导论 第一章习题
- 安卓工具类------->ToolFor9Ge
- Docker容器内不能联网的6种解决方案
- 理解Handler、Looper、MessageQueue、Thread关系?二
- POJ 2492 A Bug's Life(并差集应用)
- Oracle下lag和lead分析函数
- Custom Class Loading in Dalvik
- iOS - UITableViewController的RefreshControl使用
- C++对象模型
- android多线程编程详解,关于Handler ,Looper , Message , MessageQueue