美文网首页
Android Popwindow全面屏

Android Popwindow全面屏

作者: AwaitZhang | 来源:发表于2020-07-08 12:01 被阅读0次

    DisplayMetrics metrics = new DisplayMetrics();

    mContext.getWindowManager().getDefaultDisplay().getMetrics(metrics);

    mWidth = metrics.widthPixels;

    mHeight = metrics.heightPixels;

    setWidth(mWidth);

    setHeight(mHeight + getStatusBarHeight(mContext) + getBottomKeyboardHeight(mContext));

    popwindow.this.setClippingEnabled(false);

    /**

    * 获取状态栏高度

    *

    * @param context context

    * @return 状态栏高度

    */

    public static int getStatusBarHeight(Context context) {

        // 获得状态栏高度

        int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");

        return context.getResources().getDimensionPixelSize(resourceId);

    }

    /**

    * 获取底部虚拟键盘的高度

    */

    public static int getBottomKeyboardHeight(Activity context) {

        int screenHeight = getAccurateScreenDpi(context)[1];

        DisplayMetrics dm = new DisplayMetrics();

        context.getWindowManager().getDefaultDisplay().getMetrics(dm);

        int heightDifference = screenHeight - dm.heightPixels;

        return heightDifference;

    }

    /**

    * 获取精确的屏幕大小

    */

    public static int[] getAccurateScreenDpi(Activity context) {

        int[] screenWH = new int[2];

        Display display = context.getWindowManager().getDefaultDisplay();

        DisplayMetrics dm = new DisplayMetrics();

        try {

            Class<?> c = Class.forName("android.view.Display");

            Method method = c.getMethod("getRealMetrics", DisplayMetrics.class);

            method.invoke(display, dm);

            screenWH[0] = dm.widthPixels;

            screenWH[1] = dm.heightPixels;

        } catch (Exception e) {

            e.printStackTrace();

    }

        return screenWH;

    }

    相关文章

      网友评论

          本文标题:Android Popwindow全面屏

          本文链接:https://www.haomeiwen.com/subject/vinqcktx.html