使android桌面图标变大

转载 2012年03月23日 09:52:36

原文地址::http://blog.csdn.net/wzcqr0501/article/details/7301227

 

在平板上android系统默认的桌面图标太小了,需要将其放大。之前在launcher中做了简单的图片放大,带

来了图标模糊的问题,重新研究源码寻求解决办法。

(1)解决思路是先找到应用程序的图标等信息是怎么获取的。这就需要学习PackageManager的相关源码。

PackageManger类包含以下功能:
安装,卸载应用
查询permission相干信息
查询Application相干信息(application,activity,receiver,service,provider及响应属性等)从
AndroidManifest.xml获取的这些的信息
查询已安装应用
增长,删除permission
清除用户数据、缓存,代码段
可以通过getPackageManager()方法获得。
此类是一个抽象类。它的实现过程可以参考http://blog.csdn.net/ljsbuct/article/details/6636433中的分析。
PackageItemInfo类
说明: AndroidManifest.xml文件中所有节点的基类,提供了这些节点的基本信息:a label、icon、 meta-data。
常用字段:
public int icon  获得该资源图片在R文件中的值 (对应于android:icon属性)
public int labelRes 获得该label在R文件中的值(对应于android:label属性)
public String name   获得该节点的name值 (对应于android:name属性)
public String packagename   获得该应用程序的包名 (对应于android:packagename属性)
常用方法:
Drawable  loadIcon(PackageManager pm) 获得当前应用程序的图像
CharSequence  loadLabel(PackageManager pm)     获得当前应用程序的label
PackageItemInfo类中的这些方法时利用PackageManager中的方法实现的。
PackageItemInfo类并不直接使用,而是由子类继承然后调用相应方法。例如ActivityInfo类、ServiceInfo类和ApplicationInfo类等。
(2)我们来具体看下Launcher中时如何获取应用程序icon的:
在IconCache.java中的
private CacheEntry cacheLocked(ComponentName componentName, ResolveInfo info) {
       .....
            entry.icon = Utilities.createIconBitmap(
info.activityInfo.loadIcon(mPackageManager), mContext);
        }
也就是调用ActivityInfo类的loadIcon来获取drawable型的icon信息。
接着我们看Utilities中的createIconBitmap方法,其中有
if (sourceWidth > 0 && sourceWidth > 0) {
                // There are intrinsic sizes.
                if (width < sourceWidth || height < sourceHeight) {
                    // It's too big, scale it down.
                    final float ratio = (float) sourceWidth / sourceHeight;
                    if (sourceWidth > sourceHeight) {
                        height = (int) (width / ratio);
                    } else if (sourceHeight > sourceWidth) {
                        width = (int) (height * ratio);
                    }
                } else if (sourceWidth < width && sourceHeight < height) {
                    // It's small, use the size they gave us.
                    width = sourceWidth;
                    height = sourceHeight;
                }
            }
这段代码对icon大小处理,如果icon是固有尺寸大于我们定义的尺寸就进行裁剪,如果小于我们定义的尺寸就采用其固有尺寸。
而尺寸是在这里定义的:
sIconWidth = sIconHeight = (int) resources.getDimension(android.R.dimen.app_icon_size);
定义这个app_icon_size是在\frameworks\base\core\res\res\values中的dimens.xml中。
<!-- The standard size (both width and height) of an application icon that will be displayed in the app launcher and elsewhere. -- >
    <dimen name="app_icon_size">48dip</dimen>
(3)接下来我们在launcher源码中自己定义一个app_icon_size为72dip,编译运行应用程序列表中的图标果然变大了,但是挡住了下面的文字。
在layout/aplication_boxed.xml中把android:layout_height从88dip改成108dip。再次运行可以看到应用程序列表大图标效果是不错的。

使android桌面图标变大

原文地址::http://blog.csdn.net/wzcqr0501/article/details/7301227   在平板上android系统默认的桌面图标太小了,需要将其放大。之前...
  • xqhrs232
  • xqhrs232
  • 2012年03月23日 09:52
  • 1163

Android更改桌面应用程序launcher的两种方式

launcher,也就是android的桌面应用程序。下图是我正在使用的魅族手机的launcher应用程序:    接下来我们要开发一个自己的launcher,使其替代系统的默认launcher...
  • mdx20072419
  • mdx20072419
  • 2013年07月30日 22:23
  • 76786

使android桌面图标变大

在平板上android系统默认的桌面图标太小了,需要将其放大。之前在launcher中做了简单的图片放大,带 来了图标模糊的问题,重新研究源码寻求解决办法。 (1)解决思路是先找到应用程序的图标等...
  • wzcqr0501
  • wzcqr0501
  • 2012年02月28日 11:05
  • 13969

Android之动态更换桌面图标

Android之动态更换桌面图标文章链接知识点 动态更换APP 桌面icon的引述; activity组件及定义“同盟”组件activity-alias; PackageManager类进行启用/禁用...
  • qq_16628781
  • qq_16628781
  • 2017年04月04日 00:13
  • 3581

android 如何将桌面较长的图标名称显示完整(有些APP的图标名称太长)

1、请找到对应的res资源,修改styles.xml,将         0dp         4dp         4dp         @dimen/app_icon_paddi...
  • sergeycao
  • sergeycao
  • 2014年12月04日 11:59
  • 2630

Android动态改变App在Launcher里面的icon

如果呆萌的产品童鞋让你动态更换App在Launcher里面的Icon,你怎么回答他,下文就提出一种实现该效果的方法。原理1——activity-alias在AndroidMainifest中,有两个属...
  • zhangcanyan
  • zhangcanyan
  • 2016年12月31日 13:08
  • 3284

怎样将xp下的桌面图标和字体变大

桌面空白处右键单击“属性”-》外观-》效果-》使用大图标
  • w88193363
  • w88193363
  • 2013年01月18日 08:37
  • 3183

ubuntu下调整桌面图标的大小

GNOME默认的图标大小对于1024×768分辨率来说有点偏大,要改变大小,打开文件浏览器,例如从“位置” 里打开 “主文件夹”,点 “编辑” -->“首选项”,把 “图标视图默认值” 下的...
  • mengzihan
  • mengzihan
  • 2008年04月23日 13:43
  • 1826

Android动态修改icon--让你的app浪起来

公司APP最近做活动(12.12)要换APP图标,产品说活动前上一版,放12.12的icon,等活动过了再更新一般。 顿时我就生气了,淘宝京东都可以动态换icon,直接让我写死?这不是对技术的蔑视。埋...
  • u013134391
  • u013134391
  • 2016年12月09日 15:32
  • 8658

android launcher3将桌面较长的图标名称显示完整解决方案

android 如何将桌面较长的图标名称显示完整(有些APP的图标名称太长),androidapp 1、请找到对应的res资源,修改styles.xml,将         0dp   ...
  • u011467537
  • u011467537
  • 2015年11月30日 13:20
  • 1654
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使android桌面图标变大
举报原因:
原因补充:

(最多只允许输入30个字)