android动态应用图标
① Android 怎么动态修改 app 的图标啊
去清单文件
<application android:icon="@drawable/icon" android:label="@string/app_name"
android:name="com.entel.app.cmcc.setting.MyApplication" android:theme="@android:style/Theme.NoTitleBar"
android:debuggable="true">
<activity android:name=".Loading" android:label="@string/app_name" android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity> 上面的Icon就是aPP的图标
② Android开发:如何动态更换APP图标
原理 :在Manifest文件中,使用<activity-alias>标签为我们的启动Activity准备多个别名,拥有<activity-alias>标签的activity指向启动Activity,每个拥有<activity-alias>标签的Activity都可以单独设置一个icon,在程序中我们动态设置<activity>和<activity-alias>的enabled属性来实现替换图标效果。
步骤 :
这个 <activity-alias> 标签需要注意的地方如下:
(1)android:name属性可以随意起。
(2)android:enabled属性要设为false,否则桌面会存在多个APP图标。
(3)android:icon属性设置为不同的图标。
(4)android:targetActivity属性要设为启动的Activity。
(5)添加<intent-filter>那部分来使其作为启动的Activity。
注意setComponentEnabledSetting()方法的第3个参数有两个值供选择:1(也就是PackageManager.DONT_KILL_APP)和0。这两种参数对应两种效果:当设为1时,当切换APP图标时,会有几秒钟的延迟,并且在延迟期间不能点击图标进入APP;当设为0时,当切换APP图标时,会立刻更换,但是应用会被强制退出并被清理掉。
存在的问题 :
需要将<activity>的enabled属性设为enabled或者将APP卸载后才能编译运行。
③ Android编程:关于自定义APK图标(动态的设置)
void addShortcutToDesktop(){
Intent shortcut = new Intent(ACTION_INSTALL);
BitmapDrawable iconBitmapDrawabel = null;
// 获取应用基本信息
String label = this.getPackageName();
PackageManager packageManager = getPackageManager();
try {
iconBitmapDrawabel = (BitmapDrawable) packageManager.getApplicationIcon(label);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
// 设置属性
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, label);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON, iconBitmapDrawabel.getBitmap());
// 是否允许重复创建 -- fase-->否
shortcut.putExtra("plicate", false);
// 设置启动程序
ComponentName comp = new ComponentName(label,"." + this.getLocalClassName());
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(comp));
sendBroadcast(shortcut);
}
android支持发送Intent.EXTRA_SHORTCUT_ICON_RESOURCE的方式添加图标,这个是在activity中用的方法,怎么自定义一看就懂了