2012-03-09 12 views
13

estoy implementando un AbstractAccountAuthenticator y no puedo encontrar ninguna información relativa a las dimensiones del icono , y SmallIcon dibujables requeridos.iconos AccountAuthenticator

Hay una SampleSyncAdapter que es una demostración de la muestra para la aplicación de la anterior (También demuestra cómo implementar un AbstractThreadedSyncAdapter), pero sólo se define 1 recurso dibujable tanto para icono y SmallIcon.

¿Alguien conoce los tamaños de píxel estándar y requerido para estos dos recursos?

+0

Esto parece depender del ancho de la pantalla, no de la densidad de la pantalla. He dado algunas pistas sobre esto aquí: [link] (http://www.digigene.com/android/accounts-in-android-part-two/) –

Respuesta

15

Para pantallas de alta densidad (dibujable-IPAP):

  • SmallIcon: 36x36 px
  • normal: 72x72 px

para pantallas de densidad media (dibujable-MDPI):

  • SmallIcon: 24x24 píxeles
  • normales: 48x48 píxeles

Un recurso dibujable para ambos en/drawable es el recurso drawable predeterminado, y está diseñado para un tamaño de pantalla normal y una densidad media. El sistema escala los recursos de densidad predeterminados hacia arriba para pantallas de alta densidad y hacia abajo para pantallas de baja densidad, por lo que es mejor si crea un directorio para hdpi y otro para mdpi con el tamaño de iconos dado.

Espero que ayude.

+0

¿De dónde sacaste esta información? –

+0

Compruebe authenticator.xml y el tamaño de los iconos (ic_exchange_selected, ic_exchange_minitab_selected) en [FROYO-QRD-GB-DSDS-7225] (https://www.codeaurora.org/git/projects/qrd-gb-dsds-7225/repository /revisions/0c15e6aa7e51b42c5c0977389ffa5372c95ccb29/entry/packages/apps/Email/res/xml/authenticator.xml) – CsaByte

+1

Para otra densidad de pantalla (ldpi, xhdpi), debe seguir la proporción de escala de 3: 4: 6: 8. Compruébelo en Android DevGuide [Drawables alternativos] (http://developer.android.com/guide/practices/screens_support.html) – CsaByte

0

Existe cierta ambigüedad sobre la diferencia entre icon y smallIcon. Android declara que ambos se refieren al icono a la izquierda de la etiqueta de la cuenta (icono del robot Android en esta figura), pero donde se usa smallIcon en lugar de icon depende del tamaño de la pantalla. Esta definición no parece ser exacta a la vista de la siguiente comparación:

enter image description here

Lo anterior se compara icono y SmallIcon en dos dispositivos con diferentes anchos de pantalla. De la figura, parece que Android usa el smallIcon para la página Cuentas (captura de pantalla izquierda en la imagen de arriba). El icono más grande solo se usa para la página que muestra las diferentes cuentas de un tipo de cuenta (captura de pantalla derecha) en la Nota 4, mientras que Nexus 5 muestra el mismo tamaño de icono para ambas pantallas. Como los anchos de pantalla de Nexus 5 y Note 4 son 388 dp y 445 dp respectivamente, el ancho de la pantalla de 400 dp puede adivinarse como un umbral para el ancho de la pantalla sobre el cual se aplica el icono más grande. Esto no es exacto, sin embargo. He abordado este tema, así como el tema completo de autenticación de cuenta de Android here

0

Siguiendo lo específico proporcionado por CsaByte, he terminado con estos tamaños para mis iconos de Authenticator.

MDPI

  • SmallIcon: 24x24
  • icono 48x48:

IPAP

  • SmallIcon: 36x36
  • icono 72x72:

xhdpi

  • SmallIcon: 48x48
  • icono 96x96:

xxhdpi

  • sma llIcon: 72x72
  • icono: 144x144

xxxhdpi

  • SmallIcon: 96x96
  • icono: 192x192

poner esas dibujables en su carpeta dibujable densidad respectiva.

Luego, en el authenticator.xml puede ir con esto:

<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android" 
    android:accountType="@string/account_type" 
    android:label="@string/app_name" 
    android:icon="@drawable/icon" 
    android:smallIcon="@drawable/smallIcon" /> 

El tamaño del icono es el mismo que el tamaño ic_launcher, si no quieres perder espacio dentro de su aplicación y que no necesita un icono personalizado para su autenticador, puede usar el mipmap ic_launcher en su lugar. Su authenticator.xml se puede escribir como:

<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android" 
    android:accountType="@string/account_type" 
    android:label="@string/app_name" 
    android:icon="@mipmap/ic_launcher" 
    android:smallIcon="@drawable/smallIcon" />