android 怎样修改系统launcher中应用的图标
2018-01-24 16:59
537 查看
有些已经封装好的apk,怎样替换图标,这个需求好像有点奇怪。话不多说,直接上代码。在AllAppsList.java有个add方法,会把所有安装的apk信息都保存到一个ArrayList里面
public void add(AppInfo info) {
if (mAppFilter != null && !mAppFilter.shouldShowApp(info.componentName)) {
return;
}
if (findActivity(data, info.componentName, info.user)) {
LauncherLog.d(TAG, "Application " + info + " already exists in app list, app = "
+ info);
return;
}
LauncherLog.d(TAG, "add componentName "+info.componentName);
if(info.componentName.getPackageName().equals("com.android.music")){
LauncherLog.d(TAG, "add componentName equals");
info.iconBitmap = BitmapFactory.decodeStream(getClass().getResourceAsStream("/res/drawable/ic_setting.png"));
}
data.add(info);
added.add(info);
}在这个方法里面添加一个判断,如果是某个包名,就把该包名的icon的信息替换为自己想添加的图片。修改完后,在launcher的第二层界面生效了,但是拖动图标生成桌面快捷方式的图标还是原来的图标。接着跟代码,在ShortcutInfo.java类的构造方法里面过滤,这样通过拖动图标生成桌面快捷方式的图标修改成功。
/** TODO: Remove this. It's only called by ApplicationInfo.makeShortcut. */
public ShortcutInfo(AppInfo info) {
super(info);
title = Utilities.trim(info.title);
intent = new Intent(info.intent);
customIcon = false;
flags = info.flags;
isDisabled = info.isDisabled;
if(info.componentName.getPackageName().equals("com.android.music")){
Log.d(TAG, "ShortcutInfo equals");
mIcon = BitmapFactory.decodeStream(getClass().getResourceAsStream("/res/drawable/ic_setting.png"));
}
Log.d(TAG,"ShortcutInfo3",new RuntimeException("test").fillInStackTrace());
}还有一个问题,默认的default_workspace中加载的图片还是没有改变。在LauncherModel.java类里面有个getAppShortcutInfo方法,在这面加一个过滤。
if(componentName.getPackageName().equals("com.android.music")){
Log.d(TAG, "ShortcutInfo equals");
info.setIcon(BitmapFactory.decodeStream(getClass().getResourceAsStream("/res/drawable/ic_setting.png")));
}这样就完全把一个app的icon替换成任意的一张图片。
public void add(AppInfo info) {
if (mAppFilter != null && !mAppFilter.shouldShowApp(info.componentName)) {
return;
}
if (findActivity(data, info.componentName, info.user)) {
LauncherLog.d(TAG, "Application " + info + " already exists in app list, app = "
+ info);
return;
}
LauncherLog.d(TAG, "add componentName "+info.componentName);
if(info.componentName.getPackageName().equals("com.android.music")){
LauncherLog.d(TAG, "add componentName equals");
info.iconBitmap = BitmapFactory.decodeStream(getClass().getResourceAsStream("/res/drawable/ic_setting.png"));
}
data.add(info);
added.add(info);
}在这个方法里面添加一个判断,如果是某个包名,就把该包名的icon的信息替换为自己想添加的图片。修改完后,在launcher的第二层界面生效了,但是拖动图标生成桌面快捷方式的图标还是原来的图标。接着跟代码,在ShortcutInfo.java类的构造方法里面过滤,这样通过拖动图标生成桌面快捷方式的图标修改成功。
/** TODO: Remove this. It's only called by ApplicationInfo.makeShortcut. */
public ShortcutInfo(AppInfo info) {
super(info);
title = Utilities.trim(info.title);
intent = new Intent(info.intent);
customIcon = false;
flags = info.flags;
isDisabled = info.isDisabled;
if(info.componentName.getPackageName().equals("com.android.music")){
Log.d(TAG, "ShortcutInfo equals");
mIcon = BitmapFactory.decodeStream(getClass().getResourceAsStream("/res/drawable/ic_setting.png"));
}
Log.d(TAG,"ShortcutInfo3",new RuntimeException("test").fillInStackTrace());
}还有一个问题,默认的default_workspace中加载的图片还是没有改变。在LauncherModel.java类里面有个getAppShortcutInfo方法,在这面加一个过滤。
if(componentName.getPackageName().equals("com.android.music")){
Log.d(TAG, "ShortcutInfo equals");
info.setIcon(BitmapFactory.decodeStream(getClass().getResourceAsStream("/res/drawable/ic_setting.png")));
}这样就完全把一个app的icon替换成任意的一张图片。
相关文章推荐
- 修改android 修改系统程序图标大小,android4.0 Launcher2 桌面的列数,行数
- Android 4.0 修改Launcher 应用图标文字大小
- 修改android N的Launcher3桌面应用图标
- android launcher3修改内置的系统图标显示
- Android怎样使应用安装后不在launcher上显示图标
- Android Launcher3 去掉应用列表后,在系统桌面拖动应用图标卸载应用
- 在Android隐藏launcher应用图标由其他应用启动
- Android Launcher分析和修改7——AllApp全部应用列表(AppsCustomizeTabHost)
- 【android】修改android默认应用图标
- 通过PHP怎样取到android系统下apk应用的包名,版本号等信息
- 怎么样在eclipse内查看修改编译Android系统自带的应用
- Android4.0.3 Launcher应用程序图标放置区域修改
- android 修改系统程序图标大小
- 在Android隐藏launcher应用图标由其他应用启动
- Launcher里面修改应用图标以及应用图标对应的字体大小
- Ubuntu Gnome下怎样修改应用的图标icon
- 通过PHP怎样取到android系统下apk应用的包名,版本号等信息
- Android 主界面应用图标的动态修改
- android编译中修改默认的系统应用
- 通过PHP怎样取到android系统下apk应用的包名,版本号等信息