Launcher2中横屏竖屏dimens参数意义分析详解



        -------------------------------------------------------------------------------------------------------------------------------------------------------------------
                                    Launcher2中横屏竖屏dimens 参数意义分析详解
        -------------------------------------------------------------------------------------------------------------------------------------------------------------------
        Android系统平台:4.0.4
        实验机器:1024*768 px 8寸平板
        研究代码路径:packages\apps\Launcher2\res\values-sw600dp-port
      Ps:
          1.只拿竖屏研究,不知道为什么比较喜欢竖屏,横屏同理。
          2.这里的sw600dp是对应我们这机子的。
          3.如果你改了参数没影响,可以看看是不是平台下有别的device 覆盖掉源代码中的参数。

         源代码:
        <?xml version="1.0" encoding="utf-8"?>
        <resources>
            <!-- AppsCustomize -->
            <dimen name="apps_customize_cell_width">96dp</dimen>
            <dimen name="apps_customize_cell_height">96dp</dimen>
        <!-- Workspace -->
            <!-- the area at the edge of the screen that makes the workspace go left
                 or right while you're dragging. -->
            <dimen name="scroll_zone">20dp</dimen>
            <dimen name="workspace_left_padding">6dip</dimen>
            <dimen name="workspace_right_padding">6dip</dimen>
            <dimen name="workspace_top_padding">18dip</dimen>
            <dimen name="workspace_bottom_padding">0dip</dimen>
            <dimen name="workspace_width_gap">32dp</dimen>
            <dimen name="workspace_height_gap">72dp</dimen>
            <dimen name="workspace_page_spacing">16dp</dimen>
        <!--Apps_customize -->
              <dimen name="apps_customize_pageLayoutWidthGap">24dp</dimen>
            <dimen name="apps_customize_pageLayoutHeightGap">52dp</dimen>
            <dimen name="apps_customize_pageLayoutPaddingTop">48dp</dimen>
            <dimen name="apps_customize_pageLayoutPaddingBottom">56dp</dimen>
            <dimen name="apps_customize_pageLayoutPaddingLeft">53dp</dimen>
            <dimen name="apps_customize_pageLayoutPaddingRight">53dp</dimen>
            <integer name="apps_customize_widget_cell_count_x">2</integer>
            <integer name="apps_customize_widget_cell_count_y">3</integer>
            <integer name="apps_customize_cling_focused_x">2</integer>
            <integer name="apps_customize_cling_focused_y">2</integer>
        <!-- Cling -->
            <!-- The offset for the text in the cling -->
            <dimen name="cling_text_block_offset_x">80dp</dimen>
            <dimen name="cling_text_block_offset_y">160dp</dimen>
        </resources>

             这里分为两部分:
                A.Workspace:这个代表桌面,即按HOME键回到的那个位置  
                B.Apps_customize :这个代表应用程序列表
             A.Workspace:
              workspace:
                

              workspaceDetail:
               

               注意点:
                 1. width gap与 height gapapp cell 前后都有。例:如果桌面最多显示5*5app图标那么总的width gap 就有6个。
                2.如果你虚拟屏幕设置和实际屏幕相差太大(在桌面中),那么会出现以下情况(红框为 bug
                bug1
                  
              这个可以调整:workspace_left_padding、workspace_right_padding、workspace_width_gap、workspace_page_spacing。
               公式: Virtual screen width=left padding+right padding+width gap*cell number+1+cell width*cell number+unknown width
              3.我将各个 padding 都设为 0dp ,然后移一个 widget 到桌面,发现这个虚拟屏幕有个原始的 padding 存在,左右一样 12dip ,上边 0dip ,下边 18dip 这个就是我前面所说的 unknown width 之一(我估计着这是在源码中写死的了)
             遗留问题:
              1.这个虽然注释写得很清楚,但是我把值都设为0dp100dp 都没有看出有什么不同之处。还不是很理解这个滚动区域具体指什么?
              questionPic:
                
             B.A pps_customize
              解析可以参考上面的图,意思都差不多。
               多增加的
                apps_customize_widget_cell_count_x :横向显示的 widget 个数
                apps_customize_widget_cell_count_y :竖向显示的 widget 个数
               注意点:
                1.虚拟屏幕不能比实际屏幕小,否则会出现这种情况(红色框为 bug
                bug2
                  
                 分析原因:大家都知道向左拖动的时候会有右边那个虚拟屏幕的图标阴影变化。这是因为那个阴影是根据你当前虚拟屏幕和实际屏幕相差的宽度设定的,具体实现可以参考源码,占时没有研究那么多。
                iconListView:
                  
                 2. 如果虚拟屏幕设定过大,app icon会被挤到下一行,然后虚拟屏幕会重新自适应变小。
              遗留问题:
                1.应用程序列表中的unknown width(公式有提到)我这边固定是38dp,但是具体不知道是为什么?
                2.apps_customize_cling_focused_x、apps_customize_cling_focused_y这两个不知道什么意思?
                3.cling_text_block_offset_x、cling_text_block_offset_ y这两个猜想是点击屏幕,然后在点击的正中间加宽,加高,再算出具体是点击那个icon

              扩展(查找资料的时候看到些问题还有好的帖子和一些小的问题解析):
              1.图标文字显示一半:
                  http://www.apkbus.com/android-69418-1-1.html
                  bug3
                    
                  这个是因为 app cell 设置小了
              2.把大小不一的图标设置成一样大、设置文字宽度:
                   http://www.eoeandroid.com/thread-198629-1-1.html
                  该问题已解决,为了看到我这篇也有同样的问题的人提供的链接
                  图标大小:values--dimens.xml-->app_icon_size
                  体占位的长宽: values--styles.xml
              3.dp px 转换问题:
                   http://www.eoeandroid.com/forum.php?mod=viewthread&tid=72310&highlight=
                  px = (density/160)dp
                   density 一般为 3 个常用固定值 240/160/120
                   分别对应 WVGA/HVGA/QVGA
              4.设置应用程序列表中显示 N*N 的问题:
                  路径: packages\apps\Launcher2\res\values\workspace.xml
                  launcher:cellCountX="6"
                  launcher:cellCountY="4" (这是设置显示的多少乘多少)
              5.android launcher icon size
                  http://blog.csdn.net/sdsunqian/article/details/7891976
                  这个是我入门的帖子,没事可以点开看看。
              6.Bitmap和Drawable区别:
                  http://dyh7077063.iteye.com/blog/970672
                  这个是看 Utilities 类引发的问题。
              7. 通过 Drawable 的名字获得资源:
                  http://blog.sina.com.cn/s/blog_7acf43c50100v4vj.html
                  这个是看 Utilities 类引发的问题。
              8. 修改应用列表图标背景:
                   http://www.eoeandroid.com/forum.php?mod=viewthread&tid=187316&extra=page%3D1&page=1

        ---------------------------------------------------------------------------------------------------------------------------------------------------
        ---------------------------------------------------------------------------------------------------------------------------------------------------
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值