Estoy tratando de cargar el logotipo asociado con la actividad actual y/o su aplicación principal a partir de la definición en el manifiesto. Esta técnica ya ha trabajado con éxito en cargar el título y el icono asociado con ambos, pero el logotipo está volviendo siempre null
ó 0.Actividad de carga y/o logotipo de la aplicación mediante programación desde el manifiesto
Aquí está la información relevante desde el manifiesto que estoy trabajando con:
<application
android:icon="@drawable/ic_launcher"
android:logo="@drawable/ad_logo"
android:label="@string/app_name"
android:hardwareAccelerated="true">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:logo="@drawable/ad_logo">
con activity
ser una instancia de la actividad se ha definido anteriormente, he intentado lo siguiente (resultados en línea anotado):
PackageManager pm = activity.getPackageManager();
ComponentName cn = activity.getComponentName();
ApplicationInfo ai = activity.getApplicationInfo();
//ACTIVITY LABEL: Works
pm.getActivityInfo(cn, PackageManager.GET_ACTIVITIES).loadLabel(pm);
//APPLICATION LABEL: Works
ai.loadLabel(pm);
//APPLICATION LABEL: Works
pm.getApplicationLabel(ai);
//ACTIVITY ICON: Works
pm.getActivityInfo(cn, PackageManager.GET_ACTIVITIES).loadIcon(pm);
//ACTIVITTY ICON: Works
pm.getActivityIcon(cn);
//APPLICATION ICON: Works
pm.getApplicationIcon(ai);
//APPLICATION ICON: Works
ai.loadIcon(pm);
//ACTIVITY LOGO: Does not work
pm.getActivityInfo(cn, PackageManager.GET_ACTIVITIES).loadLogo(pm);
//ACTIVITY LOGO: Does not work
pm.getActivityInfo(cn, PackageManager.GET_ACTIVITIES).logo
//ACTIVITY LOGO: Does not work
pm.getActivityLogo(cn);
//APPLICATION LOGO: Does not work
pm.getApplicationLogo(ai);
//APPLICATION LOGO: Does not work
pm.getApplicationLogo(activity.getApplication().getPackageName());
//APPLICATION LOGO: Does not work
ai.loadLogo(pm);
//APPLICATION LOGO: Does not work
pm.getApplicationInfo(ai.packageName, 0).loadLogo(pm);
//APPLICATION LOGO: Does not work
ai.logo;
¿alguien sabe cómo cargar correctamente el logotipo de uno o ambos de estos Targ ets?
edición: apoyo Logo requiere el nivel API 9. Los dispositivos que estoy probando en emuladores y dispositivos físicos de todo runing nivel API 10. Este código no se ejecutará en 3.0+.
No puedo probarlo ahora, pero quizás tener un 'android: logo' en la actividad también es un problema? Es un atributo de aplicación, no de actividad. Intenta eliminar el segundo. – Aleadam
@Aleadam Noté que no estaba definido en [la especificación] (http://developer.android.com/guide/topics/manifest/activity-element.html) pero existe el método para cargar el logotipo y tiene se ha utilizado en [ejemplos propios de Google] (http://code.google.com/p/styled-action-bar/source/browse/trunk/AndroidManifest.xml). Voy a probar. –
el método es fin, estoy hablando del manifiesto. Voy a publicar algunos más a continuación (bue a las limitaciones de comentarios) – Aleadam