1、获取屏幕的物理尺寸和分辨率。
2、计算屏幕的最小宽度。
(资料图片仅供参考)
对于第一步,我们可以使用Android SDK提供的Display类中的方法来获取屏幕的物理尺寸和分辨率。具体代码如下:
DisplayMetrics
metrics
=
new
DisplayMetrics
;">)
;
getWindowManager
;">)
.
getDefaultDisplay
;">)
.
getMetrics
;">)
;
float
widthInInches
=
metrics
.
widthPixels
/
;">float
)
metrics
.
xdpi
;
float
heightInInches
=
metrics
.
heightPixels
/
;">float
)
metrics
.
ydpi
;
double
diagonalInInches
=
Math
.
sqrt
;">Math
.
pow
;">,
2
)
+
Math
.
pow
;">,
2
)
)
;
int
screenWidthInPixels
=
metrics
.
widthPixels
;
int
screenHeightInPixels
=
metrics
.
heightPixels
;
对于第二步,我们可以使用计算公式:最小宽度 = 屏幕宽度 / 屏幕密度。其中,屏幕密度是指每英寸像素数,可以使用DisplayMetrics类中的densityDpi属性来获取。具体代码如下:
int
screenWidthInDp
=
;">int
)
;">/
metrics
.
density
)
;
int
screenHeightInDp
=
;">int
)
;">/
metrics
.
density
)
;
int
smallestWidthInDp
=
Math
.
min
;">,
screenHeightInDp
)
;
综上所述,我们可以得到获取红米K30 Pro的默认最小宽度的完整代码如下:
DisplayMetrics
metrics
=
new
DisplayMetrics
;">)
;
getWindowManager
;">)
.
getDefaultDisplay
;">)
.
getMetrics
;">)
;
float
widthInInches
=
metrics
.
widthPixels
/
;">float
)
metrics
.
xdpi
;
float
heightInInches
=
metrics
.
heightPixels
/
;">float
)
metrics
.
ydpi
;
double
diagonalInInches
=
Math
.
sqrt
;">Math
.
pow
;">,
2
)
+
Math
.
pow
;">,
2
)
)
;
int
screenWidthInPixels
=
metrics
.
widthPixels
;
int
screenHeightInPixels
=
metrics
.
heightPixels
;
int
screenWidthInDp
=
;">int
)
;">/
metrics
.
density
)
;
int
screenHeightInDp
=
;">int
)
;">/
metrics
.
density
)
;
int
smallestWidthInDp
=
Math
.
min
;">,
screenHeightInDp
)
;
请注意,这个代码是在Android应用程序中运行的,因此需要将其放入Activity或Fragment中。