android2.3 Luncher2开启3D效果(图标、字体模糊解决方法)

    刚进公司,分配下来的任务就是熟悉Luncher,顺便叫我看看能不能把android2.3的luncher2弄成adw_luncher的那种3D效果,可惜本人仅会java,不懂android的应用编程,在网上看了很多拖拽的demo还是无从下手去修改原来的Luncher2,只能退能求其次,把原本luncher2支持的3d给开启。开启3D挺简单的,只是需要修改一个XML文件,但是出来的效果差强人意,图标、字体模糊,网上找了很多资料,都没这方面的解决之道,最后看到2个遇到我这类似的问题,可惜的是只联系上其中的一个哥们,但这哥们忙着搞4.0了,不愿意指导,所以我只好自己忙乎了整整1个星期,终于整出老大的需求,现在贴出修改的地方,让有需要的人士能从中得到某些思路:

工作目录:
              android2.3.4/packages/apps/Launcher2


开启3D:
    All_apps.xml (res\layout)
    默认:<include layout="@layout/all_apps_2d" />
    修改: <include layout="@layout/all_apps_3d" />

在allapps状态下图标变大解决方法:
    AllApps3D.java (src\com\android\launcher2)    
    默认图标属性:
    public static final int ICON_WIDTH_PX = 64;
        public static final int ICON_TEXTURE_WIDTH_PX = 74;
        public static final int SELECTION_TEXTURE_WIDTH_PX = 74 + 20;

        public static final int ICON_HEIGHT_PX = 64;
        public static final int ICON_TEXTURE_HEIGHT_PX = 74;
        public static final int SELECTION_TEXTURE_HEIGHT_PX = 74 + 20;

    修改为(800*480的分辨率情况下):
    
        public static final int ICON_WIDTH_PX = 72;  //图标的清晰度(宽)
        public static final int ICON_TEXTURE_WIDTH_PX = 54;  //图标的大小(宽)
        public static final int SELECTION_TEXTURE_WIDTH_PX = 44 + 20; //当选中图标拖动到桌面时的大小(宽)

        public static final int ICON_HEIGHT_PX = 72; //图标的清晰度(高)
        public static final int ICON_TEXTURE_HEIGHT_PX = 54; //图标的大小(高)
        public static final int SELECTION_TEXTURE_HEIGHT_PX = 44 + 20;   //当选中图标拖动到桌面时的大小(高)


另外还有一个方法可以修改图标的大小,就是在framework层修改,但是修改后会影响到workspace,设置过高,会导致在桌面app-name不显示,设置过低,没效果,不建议使用该招,亲测!
     android2.3.4/frameworks/base/core/res/res/values/dimens.xml
        <dimen name="app_icon_size">72dip</dimen> //默认是48dip  800*480分辨率设置为72dip

from:http://www.apkbus.com/android-23853-1-1.html


在allapps状态下字体模糊拉伸解决方法:
    Utilities.java (src\com\android\launcher2)    
    默认情况下是字体空间大小是固定的,但是可以划分成多行,由于固定空间决定了不同行数的行高不一样,所以会导致出现字体拉伸,变形的情况

    class BubbleText这个类就是在控制app_name显示的类
    默认: private static final int MAX_LINES = 2;
    修改: private static final int MAX_LINES = 3;

    如需更换字体,在BubbleText的构造函数修改:
    默认:  textPaint.setTypeface(Typeface.DEFAULT);
    修改:  textPaint.setTypeface(Typeface.DEFAULT_BOLD); //加粗
        
    
home键(小房子)的位置:
    Allapps.rs (res\raw)
    在draw_home_button这个方法里是画出房子图标的,可以根据情况来修改,屏幕左下角的坐标为(0,0),可以根据实际情况来加减:
    默认:
        y = (h - params->homeButtonTextureHeight) * 0.5f;
    修改:
        y = (h - params->homeButtonTextureHeight) * 0.5f+15;


顺便粘上eclipse 调试Luncher的方法,2d情况下可以调试,3d情况install的时候报错,猜测是allapps.rs这个文件是需要arm-gcc编译,而我的eclipse没安装插件支持

http://blog.csdn.net/dclchj/article/details/7076639

http://www.eoeandroid.com/forum.php?mod=viewthread&tid=52439


你可能感兴趣的:(eclipse,android,layout,Class,include,button)