赞
踩
1.wm窗口管理命令可以获取屏幕的 分辨率、像素密度 等信息,甚至可以临时修改屏幕的 分辨率、像素密度 等参数,可以很方便地查看 APP 在不同像分辨率和素密度手机/平板上的显示效果。
查看帮助
wm
# 或
wm help
查看 屏幕分辨率 和 像素密度
wm size # 查看屏幕的 分辨率, 单位: px
wm density # 查看屏幕的 像素密度, 单位: dpi(dots per inch)
修改 屏幕分辨率 和 像素密度
wm size 720x1280 # 把屏幕分辨率(宽x高)修改为: 720px * 1280px
wm size 360dpx640dp # 把屏幕分辨率(宽x高)修改为: 360dp * 640dp
# dp 单位将根据当前 density 自动转换为 px
wm density 360 # 把屏幕像素密度改为 360 dpi
wm size reset # 撤销对屏幕分辨率的修改(改回真实的物理分辨率)
wm density reset # 撤销对屏幕像素密度的修改(改回真实的像素密度)
屏幕尺寸、分辨率、像素密度 这三个参数时相互关联的,可以由其中两个参数算出第三个参数,像素密度的单位是 dpi(即每英寸的像素点数量),因此有下列公式:
像素点数(px)
物理尺寸(inch) = ---------------------
像素密度(px/inch)
修改 分辨率 和 像素密度,实际上修改后导致的是屏幕尺寸的变化,当然这个改变是虚拟的,只不过是修改成和指定尺寸屏幕的显示效果(显示内容的多少)一致:
分辨率相同,像素密度(density) 越大,屏幕尺寸越小,显示的内容越少(dp/sp 作为显示单位)。
分辨率相同,像素密度(density) 越小,屏幕尺寸越大,显示的内容越多(dp/sp 作为显示单位)。
- rk3588_s:/ # wm help
- Window manager (window) commands:
- help
- Print this help text.
- size [reset|WxH|WdpxHdp] [-d DISPLAY_ID]
- Return or override display size.
- width and height in pixels unless suffixed with 'dp'.
- density [reset|DENSITY] [-d DISPLAY_ID]
- Return or override display density.
- folded-area [reset|LEFT,TOP,RIGHT,BOTTOM]
- Return or override folded area.
- scaling [off|auto] [-d DISPLAY_ID]
- Set display scaling mode.
- dismiss-keyguard
- Dismiss the keyguard, prompting user for auth if necessary.
- disable-blur [true|1|false|0]
- user-rotation [-d DISPLAY_ID] [free|lock] [rotation]
- Print or set user rotation mode and user rotation.
- dump-visible-window-views
- Dumps the encoded view hierarchies of visible windows
- fixed-to-user-rotation [-d DISPLAY_ID] [enabled|disabled|default]
- Print or set rotating display for app requested orientation.
- set-ignore-orientation-request [-d DISPLAY_ID] [true|1|false|0]
- get-ignore-orientation-request [-d DISPLAY_ID]
- If app requested orientation should be ignored.
- set-multi-window-config
- Sets options to determine if activity should be shown in multi window:
- --supportsNonResizable [configValue]
- Whether the device supports non-resizable activity in multi window.
- -1: The device doesn't support non-resizable in multi window.
- 0: The device supports non-resizable in multi window only if
- this is a large screen device.
- 1: The device always supports non-resizable in multi window.
- --respectsActivityMinWidthHeight [configValue]
- Whether the device checks the activity min width/height to determine
- if it can be shown in multi window.
- -1: The device ignores the activity min width/height when determining
- if it can be shown in multi window.
- 0: If this is a small screen, the device compares the activity min
- width/height with the min multi window modes dimensions
- the device supports to determine if the activity can be shown in
- multi window.
- 1: The device always compare the activity min width/height with the
- min multi window dimensions the device supports to determine if
- the activity can be shown in multi window.
- get-multi-window-config
- Prints values of the multi window config options.
- reset-multi-window-config
- Resets overrides to default values of the multi window config options.
- reset [-d DISPLAY_ID]
- Reset all override settings.
- tracing (start | stop)
- Start or stop window tracing.
- logging (start | stop | enable | disable | enable-text | disable-text)
- Logging settings.
- usage: wm [subcommand] [options]
- wm size [reset|WxH|WdpxHdp]
- wm density [reset|DENSITY]
- wm overscan [reset|LEFT,TOP,RIGHT,BOTTOM]
- wm scaling [off|auto]
- wm screen-capture [userId] [true|false]
-
- //wm size 显示或修改显示display size
- wm size: return or override display size.
- width and height in pixels unless suffixed with 'dp'.
-
- //显示或修改display密度
- wm density: override display density.
-
- //设置扫描区域?
- wm overscan: set overscan area for display.
-
- //设置显示缩放模式
- wm scaling: set display scaling mode.
-
- //启用或禁用屏幕截图
- wm screen-capture: enable/disable screen capture.
-
- //说明: 前提没有设置数字,图案,PIN密码,如果是锁屏待机状态,执行此命令后,直接解锁进入桌面
- wm dismiss-keyguard: dismiss the keyguard, prompting the user for auth if necessary.
-
-
- 实例:
-
- wm size 分辨率
-
- wm density 缩放密度
-
- wm size -d 0 // 得到屏幕编号 0(内屏)的分辨率
-
- wm size -d 1 // 得到屏幕编号 1(外屏)的分辨率
-
- wm size 1108*1080 -d 1 // 修改外屏的分辨率为 1080p
-
- wm size reset -d 1 // 重置外屏分辨率为默认值
-
- wm density 234 -d 1 // 修改外屏缩放
-
- wm size 480x720 -d 1 // 修改外屏分辨为 480*720(长方形)
名词 | 解释 | 备注 |
---|---|---|
dpi | 像素密度(Dots Per Inch), 指每英寸的像素 公式是dpi=屏幕对角线像素总数px/屏幕对角线长度in 常见的dpi ldpi:120 mdpi:160 hdpi:240 xhdpi:320 xxhdpi:480 xxxxhdpi:640 | |
density | 屏幕密度,规定以160dpi的屏幕其屏幕密度为1,反过来说就是屏幕密度为1的屏幕上1in上有160px | |
ppi | PPI(Pixel Per Inch) | |
分辨率 | 例如 1920 * 1080 就是说 我的屏幕宽度有 1920 个像素点 ,高度有 1080 个像素点。 | |
屏幕大小 | 例如我的是4.0 英寸, 就是指 从屏幕的左上角 到 屏幕的右下角 连线长度为4.0英寸 | |
px | 像素单位。最基础的图像构成元素单位。 1px代表1个像素 | |
dp | Android开发上的基于屏幕密度的一种密度无关的像素单位,1dp代表的像素长度=density * 1px dp单位解决了同尺寸不同分辨率下,保持显示比例一致 | |
sp | 放大像素。Android发明的长度单位,一般用于设置字体大小 |
wm fixed-to-user-rotation 表示是否将屏幕固定到用户设置的旋转方向
wm fixed-to-user-rotation -d 0 enabled // 启用内屏方向强制旋转
wm fixed-to-user-rotation -d 1 disabled // 先禁用外屏方向强制旋转
wm fixed-to-user-rotation -d 1 enabled // 启用外屏方向强制旋转
wm user-rotation -d 1 lock 1 // 锁定旋转外屏的方向到 1 , lock 后面的数字参数 0,1,2,3 对应上下左右四个方向
frameworks/base/services/core/java/com/android/server/wm/DisplayRotation.java
- // wm fixed-to-user-rotation -d 0 enabled
- boolean isFixedToUserRotation() {
- switch (mFixedToUserRotation) {
- case IWindowManager.FIXED_TO_USER_ROTATION_DISABLED:
- return false;
- case IWindowManager.FIXED_TO_USER_ROTATION_ENABLED:
- return true;
- default:
- return mDefaultFixedToUserRotation;
- }
- }
-
- 直接return true 或者改default的值为true
参考文献:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。