直接复制到项目即可使用的工具类。
import java.io.File;
import java.io.FileOutputStream;
import java.lang.reflect.Field;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.net.Uri;
import android.os.Environment;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.View;
import android.view.WindowManager;
import com.hq.hq100.R;
public class Util {
/**
* 获取屏幕分辨率
* @param activity
* @return display display[0]=当前屏幕宽度 display[1]=当前屏幕高度
*/
public static int[] getCurrDisplay(Activity activity){
int [] display={0,0};
//定义DisplayMetrics对象
DisplayMetrics dm = new DisplayMetrics();
//获取窗口属性
activity.getWindowManager().getDefaultDisplay().getMetrics(dm);
//窗口宽度
int screenWidth = dm.widthPixels;
//窗口高度
int screenHeight = dm.heightPixels;
display[0] = screenWidth;
display[1] = screenHeight;
return display;
}
// 获取当前版本号
public static String getVersionName(Context context) throws Exception {
// 获取packagemanager的实例
PackageManager packageManager = context.getPackageManager();
// getPackageName()是你当前类的包名,0代表是获取版本信息
PackageInfo packInfo = packageManager.getPackageInfo(
context.getPackageName(), 0);
return packInfo.versionName;
}
// 调用系统浏览器
public static void goToUrl(String url, Context context) {
Uri uri = Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
context.startActivity(intent);
}
/**
* 获取和保存当前屏幕的截图 返回 截图文件路径 filepath
*/
public static String GetandSaveCurrentImage(Activity currActivity,
String fileName) {
// 1.构建Bitmap
WindowManager windowManager = currActivity.getWindowManager();
Display display = windowManager.getDefaultDisplay();
int w = display.getWidth();
int h = display.getHeight();
Bitmap Bmp = Bitmap.createBitmap(w, h, Config.ARGB_8888);
// 2.获取屏幕
View decorview = currActivity.getWindow().getDecorView();
decorview.setDrawingCacheEnabled(true);
Bmp = decorview.getDrawingCache();
String SavePath = getSDCardPath() + "/myImage/ScreenImage/";
// 截图文件路径
String filepath = "";
// 3.保存Bitmap
try {
File path = new File(SavePath);
// 文件
filepath = SavePath + fileName;
File file = new File(filepath);
if (!path.exists()) {
path.mkdirs();
}
if (!file.exists()) {
file.createNewFile();
}
FileOutputStream fos = null;
fos = new FileOutputStream(file);
if (null != fos) {
Bmp.compress(Bitmap.CompressFormat.PNG, 90, fos);
fos.flush();
fos.close();
// Toast.makeText(currActivity.getApplicationContext(),
// "截屏文件已保存至SDCard/myImage/ScreenImage/下",
// Toast.LENGTH_LONG).show();
}
} catch (Exception e) {
e.printStackTrace();
}
return filepath;
}
/**
* 获取SDCard的目录路径功能
*/
public static String getSDCardPath() {
File sdcardDir = null;
// 判断SDCard是否存在
boolean sdcardExist = Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED);
if (sdcardExist) {
sdcardDir = Environment.getExternalStorageDirectory();
}
return sdcardDir.toString();
}
/**
* 分享功能
*
* @param context
* 上下文
* @param activityTitle
* Activity的名字 (分享框的标题)
* @param msgTitle
* 消息标题
* @param msgText
* 消息内容
* @param imgPath
* 图片路径,不分享图片则传null
*/
public static void shareMsg(Context context, String activityTitle,
String msgTitle, String msgText, String imgPath) {
Intent intent = new Intent(Intent.ACTION_SEND);
if (imgPath == null || imgPath.equals("")) {
intent.setType("text/plain"); // 纯文本
} else {
File f = new File(imgPath);
if (f != null && f.exists() && f.isFile()) {
intent.setType("image/png");
Uri u = Uri.fromFile(f);
intent.putExtra(Intent.EXTRA_STREAM, u);
}
}
intent.putExtra(Intent.EXTRA_SUBJECT, msgTitle);
intent.putExtra(Intent.EXTRA_TEXT, msgText);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(Intent.createChooser(intent, activityTitle));
}
// 通过字符串变量名获取资源ID
public static int getBigIconResourceId(String recourse_name) {
R.drawable drawables = new R.drawable();
// 默认的id
int resId = 0x7f02000b;
try {
// 根据字符串字段名,取字段
Field field = R.drawable.class.getField(recourse_name);
// 取值
resId = (Integer) field.get(drawables);
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return resId;
}
}