Android Launcher3去掉所有应用列表,横屏时左右两侧的留空

先看一下调整前后的效果图:

         // Layout AllApps
        AppsCustomizeTabHost host = (AppsCustomizeTabHost)
                launcher.findViewById(R.id.apps_customize_pane);
        if (host != null) {
            // Center the all apps page indicator
            int pageIndicatorHeight = (int) (pageIndicatorHeightPx * Math.min(1f,
                    (allAppsIconSizePx / DynamicGrid.DEFAULT_ICON_SIZE_PX)));
            pageIndicator = host.findViewById(R.id.apps_customize_page_indicator);
            if (pageIndicator != null) {
                lp = (FrameLayout.LayoutParams) pageIndicator.getLayoutParams();
                lp.gravity = Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM;
                lp.width = LayoutParams.WRAP_CONTENT;
                lp.height = pageIndicatorHeight;
                pageIndicator.setLayoutParams(lp);
            }

            AppsCustomizePagedView pagedView = (AppsCustomizePagedView)
                    host.findViewById(R.id.apps_customize_pane_content);
            padding = new Rect();
            if (pagedView != null) {
                // Constrain the dimensions of all apps so that it does not span the full width
                    // TChip ZJ Add START: 去掉所有应用列表,横屏时左右两侧的Margin
                int paddingLR = (availableWidthPx - (allAppsCellWidthPx * allAppsNumCols)) /
                        (2 * (allAppsNumCols + 1));
                int paddingTB = (availableHeightPx - (allAppsCellHeightPx * allAppsNumRows)) /
                        (2 * (allAppsNumRows + 1));
                paddingLR = Math.min(paddingLR, (int)((paddingLR + paddingTB) * 0.75f));
                paddingTB = Math.min(paddingTB, (int)((paddingLR + paddingTB) * 0.75f));
                    paddingLR = (int)(paddingLR * 0.75f);
                    paddingTB = (int)(paddingTB * 0.75f);
                    // TChip ZJ Add END

                    // TChip ZJ Minus START: 去掉所有应用列表,横屏时左右两侧的Margin
                    /*
                    int paddingLR = 2;
                    int paddingTB = 2;
                    */
                    // TChip ZJ Minus END
                int maxAllAppsWidth = (allAppsNumCols * (allAppsCellWidthPx + 2 * paddingLR));
                int gridPaddingLR = (availableWidthPx - maxAllAppsWidth) / 4;
                // Only adjust the side paddings on landscape phones, or tablets
                if ((isTablet() || isLandscape) && gridPaddingLR > (allAppsCellWidthPx / 4)) {
                    padding.left = padding.right = gridPaddingLR;
                }
                // The icons are centered, so we can't just offset by the page indicator height
                // because the empty space will actually be pageIndicatorHeight + paddingTB
                padding.bottom = Math.max(0, pageIndicatorHeight - paddingTB);
                pagedView.setAllAppsPadding(padding);
                pagedView.setWidgetsPageIndicatorPadding(pageIndicatorHeight);
            }
        }
时间: 2024-11-07 06:09:55

Android Launcher3去掉所有应用列表,横屏时左右两侧的留空的相关文章

android Activity 的生命周期 以及横屏竖屏切换时 Activity 的状态变化

生命周期Android 系统在Activity 生命周期中加入一些钩子,我们可以在这些系统预留的钩子中做一些事情.例举了 7 个常用的钩子:protected void onCreate(Bundle savedInstanceState)protected void onStart()protected void onResume()protected void onPause()protected void onStop()protected void onRestart()protecte

Android学习系列(17)--App列表之圆角ListView(续)

http://www.cnblogs.com/qianxudetianxia/archive/2011/09/19/2068760.html 本来这篇文章想并到上篇Android学习系列(16)--App列表之圆角ListView中的,但是若是如此就让大家错过一篇新的好的文章,着实可惜.上篇中我们使用shape,corners,gradient实现了一个渐变的圆角效果,但是在完文之后的实践中,我发现有时效果不甚满意,选中和放手的事件监听没有去正确的判断,然后渐变效果也比较单一,性能也觉得不是很快

Android Launcher3源码分析(五)WallpaperCropActivity

最近两天改一个客户需求改得挺耗时,多数都用在了WallpaperCropActivity这个文件中.今天就顺带分析一下这个文件. 路径:packages/apps/Launcher3/src/com/android/launcher3/WallpaperCropActivity.java 这个Activity是Launcher设置壁纸的Activity,完成剪切壁纸大小,设置壁纸等操作. 就在代码里面加注释分析吧,方便一些. 因为我这边的代码是mediaTek定制过的,有些地方和Google官方

eclipse导入Android Launcher3运行

最近需要定制一个mtk手持设备的Launcher,Android版本是4.4.2,Launcher版本是Launcher 3. 事实上网上已经有不少关于如何将Android 4.0的Launcher 2源码导入eclipse运行的文章了.比如: 1. http://blog.csdn.net/chenshaoyang0011/article/details/7857634 2. http://blog.csdn.net/klpchan/article/details/11843295. 同时我又

Android MaoZhuaWeiBo 好友动态信息列表数据抓取 -3

前面2篇把大致的开发说的差不多了,接下来说说粉丝动态消息列表或时间线数据的抓取与解析显示,我将他全部写在了一个 类里,并以封装类对象的形式存储数据,下面看看主要的服务代码: 粉丝动态消息列表数据抓取: package com.neweriweibo.service; /** * 用户消息列表 * @author Engineer-Jsp * @date 2014.10.29 * */ import java.io.BufferedReader; import java.io.InputStrea

Android学习系列(15)--App列表之游标ListView(索引ListView)

游标ListView,提供索引标签,使用户能够快速定位列表项.      也可以叫索引ListView,有的人称也为Tweaked ListView,可能更形象些吧.      一看图啥都懂了: 1.游标(Fast scroll thumb)      就是右边的那个拖动的方块,这个非常的简单: 1 2 3 4 5 <ListView     android:id="@+id/tweaked_list"     android:layout_width="fill_pa

python 列表构造时的引用问题

以前老是不注意python对象引用,平时也没遇到这样的问题,昨天在这个小问题纠结了半天时间.真是TMD啊 先说明一下我的目的,我有一个包含16个元素的列表,每个元素也是一个小列表.我想每四个子列表为一个单位,改变每个子列表的第一个元素为我想要的值. 代码如下 >>>a = range(1,5) >>>b = [[0]*3]*16 >>>for i in range(4):    each = b[i*4:(i+1)*4]    for item in

Android Launcher3的DeviceProfile的改变

最近真忙,没时间细写blog了. 对比了两个平台的Launcher3项目,虽然都是3,但是代码也不是一成不变的,新版本的Launcher3,DeviceProfile也从DynamicGrid中独立出来了. 之前加的很多属性不再适用,需要重新阅读源码,进行修改.呃,工作量不小. DeviceProfile.java /* * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache Licen

Android SDK无法显示更新列表解决方法

解决办法: 第一步: 打开Windows中C:\WINDOWS\system32\drivers\etc\hosts,然后添加以下内容: 203.208.46.146 dl.google.com 203.208.46.146 dl-ssl.google.com 74.125.113.121 developer.android.com 第二步: 打开Android SDK Manager,选上方的菜单Tools,进入Options,在"Force https://- "前面打钩,就可以更