/** * 工具类 */public class ScreenUtils {    private static Context sContext;    public static void init(Context context) {        sContext = context.getApplicationContext();    }    public static int getScreenWidth() {        WindowManager wm = (WindowManager) sContext.getSystemService(Context.WINDOW_SERVICE);        return wm.getDefaultDisplay().getWidth();    }    public static int getScreenHeight() {        WindowManager wm = (WindowManager) sContext.getSystemService(Context.WINDOW_SERVICE);        return wm.getDefaultDisplay().getHeight();    }    /**     * 获取状态栏高度     */    public static int getStatusBarHeight() {        int result = 0;        int resourceId = sContext.getResources().getIdentifier("status_bar_height", "dimen", "android");        if (resourceId > 0) {            result = sContext.getResources().getDimensionPixelSize(resourceId);        }        return result;    }    public static int dp2px(float dpValue) {        final float scale = sContext.getResources().getDisplayMetrics().density;        return (int) (dpValue * scale + 0.5f);    }    public static int px2dp(float pxValue) {        final float scale = sContext.getResources().getDisplayMetrics().density;        return (int) (pxValue / scale + 0.5f);    }    public static int sp2px(float spValue) {        final float fontScale = sContext.getResources().getDisplayMetrics().scaledDensity;        return (int) (spValue * fontScale + 0.5f);    }    /**     * 设置屏幕透明度     * @param activity     * @param f     */    public static void setScreentAlpha(Activity activity, float f) {        WindowManager.LayoutParams lp = activity.getWindow().getAttributes();        lp.alpha = f;        if (f == 1) {            activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//不移除该Flag的话,可能出现黑屏的bug        }else {            activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);        }        activity.getWindow().setAttributes(lp);    }    /**     * 判断是否是全面屏     */    private volatile static boolean mHasCheckAllScreen;    private volatile static boolean mIsAllScreenDevice;    public static boolean isAllScreenDevice(Context context) {        if (mHasCheckAllScreen) {            return mIsAllScreenDevice;        }        mHasCheckAllScreen = true;        mIsAllScreenDevice = false;        // 低于 API 21的,都不会是全面屏。。。        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {            return false;        }        WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);        if (windowManager != null) {            Display display = windowManager.getDefaultDisplay();            Point point = new Point();            display.getRealSize(point);            float width, height;            if (point.x < point.y) {                width = point.x;                height = point.y;            } else {                width = point.y;                height = point.x;            }            if (height / width >= 1.97f) {                mIsAllScreenDevice = true;            }        }        return mIsAllScreenDevice;    }}

 

更多相关文章

  1. Android(安卓)透明度数值
  2. 最全面总结 Android(安卓)WebView与 JS 的交互方式
  3. android设置view透明度的效果
  4. Android(安卓)颜色设置:透明度换算
  5. Android颜色全解析
  6. Android(安卓)应用启动速度优化
  7. Android中颜色透明度对应16进制值
  8. Android全面屏手机判断NavigationBar是否可见
  9. Android(安卓)ProgressDialog设置透明程度

随机推荐

  1. Android(安卓)Layout的属性
  2. android style(xml)
  3. android 布局属性
  4. android https之三
  5. Appium-Drivers-Espresso(Android)
  6. Android开发中 ListView 不能不说的几个
  7. 11、WebView 使用注意问题
  8. 自定义Ratingbar,星星“流泪了”解决办法
  9. 小技巧及总结
  10. android 走马灯效果