Phone style自定义横屏Launcher开机先竖屏再横屏解决

来源:互联网 发布:软件测试具体流程 编辑:程序博客网 时间:2024/05/21 22:48

1) 自定义横屏Launcher

2) android-4.2 Phone style

3) 启动的时候会先竖屏然后再转成横屏


原因:

android会根据屏幕的pix去算宽和高,在PhoneWindowManager中会确定用Tablet或者Phone

在WMS中,会在computeScreenConfigurationLocked中确定初始的启动采用横屏或者竖屏,

        if (config != null) {
            
config.orientation = (dw <= dh) ? Configuration.ORIENTATION_PORTRAIT :
                    
Configuration.ORIENTATION_LANDSCAPE;
            
Slog.d(TAG, " dw = " + dw + ", dh = " + dh
                  
+ ", config.orientation = " + config.orientation);
        
}

和横竖屏相关的参数

        final int realdw = rotated ?
                
displayContent.mBaseDisplayHeight : displayContent.mBaseDisplayWidth;
        
final int realdh = rotated ?
                
displayContent.mBaseDisplayWidth : displayContent.mBaseDisplayHeight;


具体的查找比较复杂,不详细说了,感兴趣可以看看mBaseDisplayHeight和mBaseDisplayWidth如何赋值的

在WMS中和初始状态相关的变量为mRotation, 默认为0, 加之是竖屏,所以会以竖屏先来layout,当发现launcher的

指定为横屏以后,接着在以横屏来layout,这就是转屏的原因


改法很简单,把mRotation = 0; 改为 mRotation = 1;让它在初始是为竖屏,旋转了90度,这不就是横屏了吗

0 0
原创粉丝点击