android支持桌面横屏

最近做Pad项目,要求支持横屏模式。需要4*8转成8*3。花了几天时间研究研究。


首先,只要删除AndroidManifest.xml , Launcher 对应activity 的android:screenOrientation="nosensor"即可支持横屏。

但是横屏之后界面果然够丑,pad 横屏布局要重新调整下。


要添加横屏的布局文件。default_workspace_8x3.xml,修改Icon位置。


添加横竖屏切换时调用不同布局,icon大小可以定制。

文件:DynamicGrid.java

        Configuration mConfiguration = context.getResources().getConfiguration();
        int ori = mConfiguration.orientation ;
        if(ori == Configuration.ORIENTATION_LANDSCAPE){
            deviceProfiles.add(new DeviceProfile("xxx Tablet",
                    557, 906,  3, 8, (useLargeIcons ? 76 : 64), 12f,  7, (useLargeIcons ? 76 : 64),
                    R.xml.default_workspace_8x3));
        }else if(ori == Configuration.ORIENTATION_PORTRAIT){
   deviceProfiles.add(new DeviceProfile("xxx Tablet",
                557, 906,  6, 4, (useLargeIcons ? 76 : 64), 12f,  7, (useLargeIcons ? 76 : 64),
                R.xml.default_workspace_4x6));
        }


修改config.xml

    <integer name="config_dynamic_grid_max_long_edge_cell_count">8</integer>
    <integer name="config_dynamic_grid_max_short_edge_cell_count">3</integer>

通过这两个值,launcher会自动计算icon间距离,摆放位置。


至此,可以横竖屏切换了。


当有widget横竖屏切换时,还有问题。

横屏时,1x4的widget放置到第一行三列,在竖屏,啊啊啊,有一部分被遮挡,这个我现在也没有好的方案。参考了几家pad,widget控制在单独一个screen,可以避免,但是也有瑕疵。有知道的可以交流下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值