2011-06-06 13 views
12

que tienen exactamente el mismo problema que this post. Quiero que mi estilo de texto de notificaciones personalizado coincida con las notificaciones predeterminadas (solo voy a agregar algunas vistas adicionales). Lamentablemente, no entiendo completamente la respuesta aceptada. Creo que estoy destinado a añadir al código XML pero no está seguro exactamente lo ... enter image description here¿Cómo usar el estilo de notificación predeterminado?

La respuesta aceptada dice" La solución es utilizar estilos integrados. El estilo que usted necesita es TextAppearance.StatusBar. EventContent. Simplemente aplique este estilo y establecerá el color de texto predeterminado para las notificaciones (no olvide Android: prefijo, por supuesto). "

¡No puedo hacer que esto funcione! En mi notificación personalizada debajo de la línea "android: textAppearance ="? Android: attr/textAppearanceLarge "funciona (ya que amplía el texto) pero no da el efecto deseado.

Aquí está mi código XML personalizado ...

<ImageView 
    android:id="@+id/notImage" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginRight="10dp" 
    android:layout_alignParentTop="true"/> 

<TextView 
    android:id="@+id/notContentTitle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_toRightOf ="@id/notImage" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<TextView 
    android:id="@+id/notContentText" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below ="@id/notContentTitle" 
/> 

Custom notification layouts and text colors

Respuesta

24

Finalmente di cuenta de lo que estaba haciendo mal ... (básicamente, estaba usando funciones de API 9 cuando solo estoy desarrollando en API 8).

En primer lugar, utilizar un defecto (plataforma) uso estilo ...

style = "@android: estilo/TextAppearance.Small"

Por ejemplo ...

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" android:padding="3dp"> 

<ImageView 
    android:id="@+id/notImage" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginRight="10dp" 
    android:layout_alignParentTop="true"/> 

<TextView 
    android:id="@+id/notContentTitle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_toRightOf ="@id/notImage" 
    android:textStyle="bold" 
    style = "@android:style/TextAppearance.Medium"/> 

<TextView 
    android:id="@+id/notContentText" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below ="@id/notImage" 
    style = "@android:style/TextAppearance.Small" /> 

segundo lugar de utilizar el estilo por defecto usar StatusBar ..

style = "@android: estilo/TextAppearance.StatusBar.EventContent" o

style = "@android: estilo/TextAppearance.StatusBar.EventContent.Title",

etc, etc.

por ejemplo,

<TextView 
    android:id="@+id/notContentText" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below ="@id/notImage" 
    style = "@android:style/TextAppearance.StatusBar.EventContent" /> 

En mi caso esto ha causado un error porque todavía estoy desarrollando con Android 2.2 (API 8), mientras que estos estilos son StatusBar para la API de 9 en adelante.(Sé que debo actualizar :))

Los enlaces útiles son;

Android.com Applying Styles and Themes, Using Platform Styles and Themes

Android.com R.style reference

StackOverflow.com Custom notification layouts and text colours

Android.com Android API levels

+0

Sólo para que quede claro ... no hay manera de utilizar los estilos predeterminados de notificación previa a API9, correcto? –

+0

Lamentablemente, sí. Como ya expliqué en mi respuesta (http://stackoverflow.com/questions/4867338/custom-notification-layouts-and-text-colors/4935191#4935191), en API Nivel 8 y anterior solo hay un valor codificado , que no se puede acceder. – Malcolm

+1

La respuesta (http://stackoverflow.com/a/7320604/435605) proporciona una forma de encontrar el color para 2.2- –

Cuestiones relacionadas