Android常公用函数收集
来源:互联网 发布:java 安卓开发 编辑:程序博客网 时间:2024/05/21 15:41
1:来自seal_talk
import android.app.Activity;import android.content.Context;import android.content.Intent;import android.content.res.Configuration;import android.content.res.Resources;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.net.Uri;import android.os.Environment;import android.text.TextUtils;import android.util.DisplayMetrics;import android.view.inputmethod.InputMethodManager;import java.io.IOException;import java.io.InputStream;import java.util.Locale;import java.util.Properties;/** * [公共工具类,与Android API相关的辅助类] * * @author devin.hu * @version 1.0 * @date 2013-9-30 * **/public class CommonUtils { @SuppressWarnings("unused") private static final String tag = CommonUtils.class.getSimpleName(); /** 网络类型 **/ public static final int NETTYPE_WIFI = 0x01; public static final int NETTYPE_CMWAP = 0x02; public static final int NETTYPE_CMNET = 0x03; /** * 根据key获取config.properties里面的值 * @param context * @param key * @return */ public static String getProperty(Context context, String key) { try { Properties props = new Properties(); InputStream input = context.getAssets().open("config.properties"); if (input != null) { props.load(input); return props.getProperty(key); } } catch (IOException e) { e.printStackTrace(); } return ""; } /** * 检测网络是否可用 * * @return */ public static boolean isNetworkConnected(Context context) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo ni = cm.getActiveNetworkInfo(); return ni != null && ni.isConnectedOrConnecting(); } /** * 获取当前网络类型 * * @return 0:没有网络 1:WIFI网络 2:WAP网络 3:NET网络 */ public static int getNetworkType(Context context) { int netType = 0; ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); if (networkInfo == null) { return netType; } int nType = networkInfo.getType(); if (nType == ConnectivityManager.TYPE_MOBILE) { String extraInfo = networkInfo.getExtraInfo(); if (!TextUtils.isEmpty(extraInfo)) { if (extraInfo.toLowerCase(Locale.getDefault()).equals("cmnet")) { netType = NETTYPE_CMNET; } else { netType = NETTYPE_CMWAP; } } } else if (nType == ConnectivityManager.TYPE_WIFI) { netType = NETTYPE_WIFI; } return netType; } /** * 判断SDCard是否存在,并可写 * * @return */ public static boolean checkSDCard() { String flag = Environment.getExternalStorageState(); return Environment.MEDIA_MOUNTED.equals(flag); } /** * 获取屏幕宽度 * @param context * @return */ public static int getScreenWidth(Context context) { DisplayMetrics dm = context.getResources().getDisplayMetrics(); return dm.widthPixels; } /** * 获取屏幕高度 * @param context * @return */ public static int getScreenHeight(Context context) { DisplayMetrics dm = context.getResources().getDisplayMetrics(); return dm.heightPixels; } /** * 获取屏幕显示信息对象 * @param context * @return */ public static DisplayMetrics getDisplayMetrics(Context context) { DisplayMetrics dm = context.getResources().getDisplayMetrics(); return dm; } /** * dp转pixel */ public static float dpToPixel(float dp, Context context) { Resources resources = context.getResources(); DisplayMetrics metrics = resources.getDisplayMetrics(); return dp * (metrics.densityDpi / 160f); } /** * pixel转dp */ public static float pixelsToDp(float px, Context context) { Resources resources = context.getResources(); DisplayMetrics metrics = resources.getDisplayMetrics(); return px / (metrics.densityDpi / 160f); } /** * 生成二维码图片 * @param str * @return */// public static Bitmap create2DCode(String str) {// try {// // 生成二维矩阵,编码时指定大小,不要生成了图片以后再进行缩放,这样会模糊导致识别失败// BitMatrix matrix = new MultiFormatWriter().encode(str, BarcodeFormat.QR_CODE, 300, 300);// int width = matrix.getWidth();// int height = matrix.getHeight();//// // 二维矩阵转为一维像素数组,也就是一直横着排了// int[] pixels = new int[width * height];// for (int y = 0; y < height; y++) {// for (int x = 0; x < width; x++) {// if (matrix.get(x, y)) {// pixels[y * width + x] = 0xff000000;// }// }// }//// Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);// // 通过像素数组生成bitmap,具体参考api// bitmap.setPixels(pixels, 0, width, 0, 0, width, height);// return bitmap;// } catch (WriterException e) {// e.printStackTrace();// }// return null;// } /** * 短信分享 * * @param mContext * @param smstext 短信分享内容 * @return */ public static Boolean sendSms(Context mContext, String smstext) { Uri smsToUri = Uri.parse("smsto:"); Intent mIntent = new Intent(Intent.ACTION_SENDTO, smsToUri); mIntent.putExtra("sms_body", smstext); mContext.startActivity(mIntent); return null; } /** * 邮件分享 * * @param mContext * @param title 邮件的标题 * @param text 邮件的内容 * @return */ public static void sendMail(Context mContext, String title, String text) { // 调用系统发邮件 Intent emailIntent = new Intent(Intent.ACTION_SEND); // 设置文本格式 emailIntent.setType("text/plain"); // 设置对方邮件地址 emailIntent.putExtra(Intent.EXTRA_EMAIL, ""); // 设置标题内容 emailIntent.putExtra(Intent.EXTRA_SUBJECT, title); // 设置邮件文本内容 emailIntent.putExtra(Intent.EXTRA_TEXT, text); mContext.startActivity(Intent.createChooser(emailIntent, "Choose Email Client")); } /** * 隐藏软键盘 * @param activity */ public static void hideKeyboard(Activity activity) { if (activity != null) { InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); if (imm.isActive()) { imm.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0); } } } /** * 显示软键盘 * @param activity */ public static void showKeyboard(Activity activity) { if (activity != null) { InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); if (!imm.isActive()) { imm.showSoftInputFromInputMethod(activity.getCurrentFocus().getWindowToken(), 0); } } } /** * 是否横屏 * @param context * @return true为横屏,false为竖屏 */ public static boolean isLandscape(Context context) { return context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE; } /** * 判断是否是平板 * 这个方法是从 Google I/O App for Android 的源码里找来的,非常准确。 * @param context * @return */ public static boolean isTablet(Context context) { return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE; }}
2 Bitmap常用函数
import android.graphics.Bitmapimport android.graphics.Canvasimport android.graphics.PixelFormatimport android.graphics.drawable.Drawable/** * Created by XiaoJun on 2017/8/20. * Version 1.0.0 */object BitmapUtils { //将drawable转换成bitmap fun drawableToBitmap(drawable: Drawable): Bitmap { val w = drawable.intrinsicWidth val h = drawable.intrinsicHeight val config = if (drawable.opacity != PixelFormat.OPAQUE) Bitmap.Config.ARGB_8888 else Bitmap.Config.RGB_565 val bitmap = Bitmap.createBitmap(w, h, config) //注意,下面三行代码要用到,否则在View或者SurfaceView里的canvas.drawBitmap会看不到图 val canvas = Canvas(bitmap) drawable.setBounds(0, 0, w, h) drawable.draw(canvas) return bitmap } /** * 裁剪 * @param bitmap 原图 * * * @return 裁剪后的图像 */ fun cropBitmap(bitmap: Bitmap, aimWidth:Int, aimHeight:Int): Bitmap { var toWidth = aimWidth; var toHeight = aimHeight if (aimWidth > bitmap.width) toWidth = bitmap.width if (aimHeight > bitmap.height) toHeight = bitmap.height val cropWidthSide = (bitmap.width - aimWidth)/2 val cropHeightSide = (bitmap.height - aimHeight)/2 return Bitmap.createBitmap(bitmap,cropWidthSide,cropHeightSide,toWidth,toHeight) }}
0 0
- Android常公用函数收集
- Android 開發 常見工具類收集
- 公用函数
- 公用函数
- Utility 公用使用代码收集
- Javascript------魅族官网公用 js 收集
- JavaScript公用函数
- 一些公用js函数
- 公用函数(1)
- 我的公用函数
- delphi公用函数
- 公用sqlcommand 函数
- ajax请求公用函数
- delphi公用函数
- asp 自用 公用函数
- thinkphp3.2.2公用函数
- Android公用头部BaseHeadActivity
- 常对象 常成员函数
- Ubuntu 14.04 64位 CUDA 安装实录
- KAFKA:如何做到1秒发布百万级条消息
- 如何设置C#窗体大小不能改变
- Java 泛型学习笔记
- 初识Arduino
- Android常公用函数收集
- Python+scrapy+mysql实现爬取磁力链接
- 图片上传的controller
- LeetCode: 461. Hamming Distance
- 二叉树以及相关的面试题
- Java 反射获取方法
- JAVA UUID 生成
- 动态代理
- 潜伏与启动-1-NETSH