Androidは携帯電話の画面の実際の幅と使用可能な幅を取得します

2526 ワード

h 5ページのフルスクリーンネットワーク画像をロードする画面の下に白いエッジがあるバグに遭遇したことがありません.なぜなら、H 5が取得した画面の幅の高さは、実際の画面の幅(下部のダミーナビゲーションバーを含む)ではなく、幅の高い値(下部の仮想ナビゲーションバーを除く)を使用できるからです.あまり話さないで、直接コードをつけて、やる!!!
import android.content.Context;
import android.graphics.Point;
import android.os.Build;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.WindowManager;

/**
 * Author: Yongbo Yin
 * Description:
 * Date: 2019/9/20 9:36
 */
public class ScreenUtil {

    /**
     *       (        )
     */
    public static int getScreenWidth(Context context) {
        WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        DisplayMetrics outMetrics = new DisplayMetrics();
        if (wm != null) {
            wm.getDefaultDisplay().getMetrics(outMetrics);
        }
        return outMetrics.widthPixels;
    }

    /**
     *       (        )
     */
    public static int getScreenHeight(Context context) {
        WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        DisplayMetrics outMetrics = new DisplayMetrics();
        if (wm != null) {
            wm.getDefaultDisplay().getMetrics(outMetrics);
        }
        return outMetrics.heightPixels;
    }

    /**
     *         (       )
     */
    public static int getScreenRealWidth(Context context) {
        WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        final Display display = windowManager.getDefaultDisplay();
        Point outPoint = new Point();
        if (Build.VERSION.SDK_INT >= 19) {
            //           
            display.getRealSize(outPoint);
        } else {
            //         
            display.getSize(outPoint);
        }
        int mRealSizeWidth;//        
        mRealSizeWidth = outPoint.x;
        return mRealSizeWidth;
    }

    /**
     *         (       )
     */
    public static int getScreenRealHeight(Context context) {
        WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        final Display display = windowManager.getDefaultDisplay();
        Point outPoint = new Point();
        if (Build.VERSION.SDK_INT >= 19) {
            //           
            display.getRealSize(outPoint);
        } else {
            //         
            display.getSize(outPoint);
        }
        int mRealSizeHeight;//        
        mRealSizeHeight = outPoint.y;
        return mRealSizeHeight;
    }
}