关于安卓分辨率容易入的坑
本文由按键学院提供技术支持
按键学院交流①群(1群已满):376122403
按键学院交流②群(2群):372671254
按键学院交流③群(3群):170084238
【按键学院】安卓课程(115768679)
对于刚接触安卓脚本开发的新手同学来说,横屏、竖屏开发一直傻傻分不清楚,容易被一些细节的地方给坑到, 为什么为在模拟器上编写的脚本拿到手机上就不能运行了?明明分辨率是一样的呀。 问这种问题的同学其实不少,今天就在这里说说开发分辨率的那些事儿 |
横竖屏分辨率
现在手机、平板、模拟器都是有分为横屏分辨率和竖屏分辨率,其中手机大部分都是竖屏分辨率,既是长比宽要短(720*1280)。而一些平板则是属于横屏分辨率,既是长比宽长(1280*720)。模拟器则是可以根据自己需要去设置分辨率还有dpi大小
对于新手来说比较容易搞糊涂的就是横竖屏之间的变换了。当竖屏分辨率运行一些横屏的游戏的时候,游戏会自动把屏幕进行旋转;同样在横屏的分辨率下运行一些竖屏的应用也会出现屏幕旋转的情况。
那在这种屏幕旋转的情况下,屏幕上的坐标有没有变化?需要重新取坐标点吗?---------答案是:没有变化。竖屏的屏幕是以左上角的点为0,0坐标点,当运行横屏的应用屏幕发生旋转的时候,依然是以之前的点为0,0点,也就是说这个坐标系是不会随着屏幕的旋转而发生变化的。
- 您所在的用户组无法下载或查看附件
- 您所在的用户组无法下载或查看附件
通过上面两张图就能明确的看出,坐标系是不变,只是把整个坐标系旋转了下。大家用助手上的抓抓截取横屏的游戏画面的时候,抓抓是自动把游戏画面竖着显示,也就是为了能更好的表明坐标系是还是以竖屏的为准的。
编写脚本时候容易被忽视的问题
有一些同学有时候会出现一种问题:在模拟器上编写脚本,放到同样分辨率的手机上却不能正常运行,会出现找不到图色的情况。 这种问题主要可能会是有三种原因:
1、dpi不同手机上就算同一种分辨率,只要屏幕的尺寸不同,那屏幕的dpi就不同。因为dpi就是屏幕像素的密度,同样的分辨率在不同屏幕尺寸上显示出来,它的每个单位内的像素点阵数量是不同的,所以会造成差别。
dpi不同导致的脚本无法通用的问题,在模拟器上很好解决,一般模拟器上都是可以设置dpi大小的,只要把模拟器的dpi设置成编写脚本时用的dpi就好了。如果想在不同手机上都兼容的话,就只能把不同dpi下的图色分别取特征进行判断了。
关于dpi的更多问题可以参考这篇院刊:
不容忽视的问题----DPI - 【201510期】2、不同设备之间的色差不同手机设备、不同的电脑模拟器之间是不可能做到完全一致的颜色的。在实际的显示中会存在一定的色差,如果在找色的时候没有考虑到这个因素的话,那有可能会出现找不到指定图色数据。
这种问题的解决办法很简单,就是加入适当的偏色即可。一般没有特殊要求的话偏色可以设置成101010或者202020这样的范围。
3、虚拟按键这个也是大家最容易忽视的问题。一些模拟器或者手机上有自带的虚拟按键,平时大家可能不会注意到,但是当存在虚拟按键时真正的游戏画面尺寸就会被压缩,导致多点找色、比色之类的命令失效。
下面这两张图就是有虚拟按键和没有虚拟按键的对比
- 您所在的用户组无法下载或查看附件
- 您所在的用户组无法下载或查看附件
这种问题的解决方法就是关闭虚拟按键,模拟器上通常都是有附带关闭虚拟按键的开关,把虚拟按键的功能关闭即
部分手机也自带有虚拟按键的控制开关,直接到设置选项中把虚拟按键关闭即可。
部分手机可能无法直接关闭虚拟按键,可以通过一些其他的软件来隐藏关闭。比如说通过安装xposed框架 ,可以在这个框架里下载使用一些插件用来隐藏虚拟按键。(具体的操作大家可以执自行百度搜索自己的机型关闭虚拟按键的方法)
- 您所在的用户组无法下载或查看附件