You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
3.0 KiB
98 lines
3.0 KiB
package net.micode.notes.tool;
|
|
|
|
import android.app.Activity;
|
|
import android.content.Context;
|
|
import android.graphics.Bitmap;
|
|
import android.graphics.Rect;
|
|
import android.util.DisplayMetrics;
|
|
import android.view.View;
|
|
import android.view.WindowManager;
|
|
|
|
/**
|
|
* Created by sendtion on 2016/5/25.
|
|
*/
|
|
public class ScreenUtils {
|
|
|
|
/**
|
|
* 获得屏幕宽度
|
|
* @param context
|
|
* @return
|
|
*/
|
|
public static int getScreenWidth(Context context)
|
|
{
|
|
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
|
|
DisplayMetrics outMetrics = new DisplayMetrics();
|
|
wm.getDefaultDisplay().getMetrics(outMetrics);
|
|
return outMetrics.widthPixels;
|
|
}
|
|
|
|
/**
|
|
* 获得屏幕高度
|
|
* @param context
|
|
* @return
|
|
*/
|
|
public static int getScreenHeight(Context context) {
|
|
WindowManager wm = (WindowManager) context
|
|
.getSystemService(Context.WINDOW_SERVICE);
|
|
DisplayMetrics outMetrics = new DisplayMetrics();
|
|
wm.getDefaultDisplay().getMetrics(outMetrics);
|
|
return outMetrics.heightPixels;
|
|
}
|
|
|
|
/**
|
|
* 获得状态栏高度
|
|
* @param context
|
|
* @return
|
|
*/
|
|
public static int getStatusHeight(Context context) {
|
|
int statusHeight = -1;
|
|
try {
|
|
Class<?> clazz = Class.forName("com.android.internal.R$dimen");
|
|
Object object = clazz.newInstance();
|
|
int height = Integer.parseInt(clazz.getField("status_bar_height")
|
|
.get(object).toString());
|
|
statusHeight = context.getResources().getDimensionPixelSize(height);
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
return statusHeight;
|
|
}
|
|
|
|
/**
|
|
* 获取当前屏幕截图,包含状态栏
|
|
*/
|
|
public static Bitmap snapShotWithStatusBar(Activity activity){
|
|
View view = activity.getWindow().getDecorView();
|
|
view.setDrawingCacheEnabled(true);
|
|
view.buildDrawingCache();
|
|
Bitmap bmp = view.getDrawingCache();
|
|
int width = getScreenWidth(activity);
|
|
int height = getScreenHeight(activity);
|
|
Bitmap bp = null;
|
|
bp = Bitmap.createBitmap(bmp, 0, 0, width, height);
|
|
view.destroyDrawingCache();
|
|
return bp;
|
|
}
|
|
|
|
/**
|
|
* 获取当前屏幕截图,不包含状态栏
|
|
*
|
|
*/
|
|
public static Bitmap snapShotWithoutStatusBar(Activity activity){
|
|
View view = activity.getWindow().getDecorView();
|
|
view.setDrawingCacheEnabled(true);
|
|
view.buildDrawingCache();
|
|
Bitmap bmp = view.getDrawingCache();
|
|
Rect frame = new Rect();
|
|
activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
|
|
int statusBarHeight = frame.top;
|
|
int width = getScreenWidth(activity);
|
|
int height = getScreenHeight(activity);
|
|
Bitmap bp = null;
|
|
bp = Bitmap.createBitmap(bmp, 0, statusBarHeight, width, height
|
|
- statusBarHeight);
|
|
view.destroyDrawingCache();
|
|
return bp;
|
|
}
|
|
}
|