获得屏幕相关的辅助类
来源:互联网 发布:网络安全产品 编辑:程序博客网 时间:2024/05/01 11:48
public class ScreenUtils { private ScreenUtils() { throw new UnsupportedOperationException("cannot be instantiated"); } /** * 获得屏幕高度 * * @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; } /** * 获取当前屏幕截图,包含状态栏 * * @param activity * @return */ 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; } /** * 获取当前屏幕截图,不包含状态栏 * * @param activity * @return */ 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; } /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) * * @param context * @param dpValue * @return */ public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); } /** * 根据手机的分辨率从 px(像素) 的单位 转成为 dp * * @param context * @param pxValue * @return */ public static int px2dip(Context context, float pxValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); } /** * 将pixel转换成sp * * @param context * @param pixelValue * @return */ public static int pixelToSp(Context context, float pixelValue) { float scaledDensity = context.getResources().getDisplayMetrics().scaledDensity; int sp = (int) (pixelValue / scaledDensity + 0.5f); System.out.println("pixelToSp---> pixelValue=" + pixelValue + ",scaledDensity=" + scaledDensity + ",sp=" + sp); return sp; } /** * 将sp转换成pixel * * @param context * @param spValue * @return */ public static int spToPixel(Context context, float spValue) { float scaledDensity = context.getResources().getDisplayMetrics().scaledDensity; int pixelValue = (int) (spValue * scaledDensity + 0.5f); System.out.println("spToPixel---> spValue=" + spValue + ",scaledDensity=" + scaledDensity + ",pixelValue=" + pixelValue); return pixelValue; } /** * 不改变控件位置,修改控件大小 * * @param v * @param W * @param H */ public static void changeWH(View v, int W, int H) { LayoutParams params = (LayoutParams) v.getLayoutParams(); params.width = W; params.height = H; v.setLayoutParams(params); } /** * 修改控件的高 * * @param v * @param H */ public static void changeH(View v, int H) { LayoutParams params = (LayoutParams) v.getLayoutParams(); params.height = H; v.setLayoutParams(params); }}
0 0
- Util:获得屏幕相关的辅助类
- android获得屏幕相关的辅助类
- 获得屏幕相关的辅助类
- 安卓工具类------>获得屏幕相关的辅助类
- Android ScreenUtils-获得屏幕相关的辅助类
- 屏幕相关的辅助类
- 屏幕相关的辅助类
- 屏幕相关辅助类
- 屏幕相关辅助类 ScreenUtils
- Android常用工具类之获取屏幕相关的辅助类
- Android屏幕相关辅助类 ScreenUtils
- Android工具类之屏幕相关辅助类
- Android屏幕辅助类
- 获取屏幕辅助类
- Util:跟App相关的辅助类
- Util:SD卡相关的辅助类
- 跟App相关的辅助类
- android跟App相关的辅助类
- python 线程池模块
- 如何确认apk的签名?
- OpenMP
- Spring boot 中 velocity 取 request 值 问题
- 欢迎使用CSDN-markdown编辑器
- 获得屏幕相关的辅助类
- net-snmp-5.7.3 移植
- Java 中最常见的五个错误
- Hibernate ehcache配置二级缓存及说明
- ZCMU-校赛C-1778
- 初中物理压强、浮力知识点归纳
- Git常用指令,留作参考
- Maven 发布jar包到本地库
- Apache+Tomcat 同一IP多域名多网站配置