| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
ed6y
10年前发布

Android屏幕相关辅助类 ScreenUtils

 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;        /**    * 获得屏幕相关的辅助类    *     *     *     */    public class ScreenUtils    {        private ScreenUtils()        {            /* cannot be instantiated */            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;            }        }