Android 获取手机屏幕的宽高有效方法

807 阅读1分钟

搜索出来的,很多都不好使了,拿到的宽高都不对劲。

这里废话不多说,给一个目前来看最有用的。直接上代码:

    /**
     * 获取手机屏幕宽高(像素)
     * @return 返回一个 Array
     */
    private fun getScreen(context: Context): IntArray {
        var mRealSizeWidth = 0
        var mRealSizeHeight = 0

        val display = (context.applicationContext.getSystemService(Context.WINDOW_SERVICE) as WindowManager).defaultDisplay
        val outPoint = Point()
        if (Build.VERSION.SDK_INT >= 19) {
            // include navigation bar
            display.getRealSize(outPoint)
        } else {
            // exclude navigation bar
            display.getSize(outPoint)
        }
        if (outPoint.y > outPoint.x) {
            mRealSizeHeight = outPoint.y
            mRealSizeWidth = outPoint.x
        } else {
            mRealSizeHeight = outPoint.x
            mRealSizeWidth = outPoint.y
        }
        return intArrayOf(mRealSizeWidth, mRealSizeHeight)
    }