2012-04-03 11 views
5

Siempre estoy buscando formas de mejorar mis habilidades de desarrollo de Android ... De ahí esta pregunta.Pros y contras, manteniendo las referencias estáticas a Typeface para su reutilización en todos los diseños.

¿Usted prevé ningún contras posibles ventajas sobre el almacenamiento o estáticamente para diferentes fuentes de tipo de letra, ya que están siendo utilizados por la aplicación?


Pros:

  • Carga vez que el uso de todo el mundo.

Contras:

  • Más montón utilizado?

Mi "TypeFace" cacher:

public static synchronized Typeface getFontType (String fontFile) 
{ 
    if (!smTypefaces.contains(fontFile)) { 
     try { 
      Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "fonts/"+fontFile); 
      if (null != tf) { 
       // todo use maybe a weak reference? 
       smTypefaces.put(fontFile, tf); 
      } 
     } catch (RuntimeException e) { 
      e.printStackTrace(); 
     } 
    } 

    return smTypefaces.get(fontFile); 
} 

Respuesta

2

que hacer exactamente eso, y nunca he tenido un problema de memoria relacionada. He creado una clase llamada FontProvider que las cargas perezosos un mapa estático donde la clave es una cadena constante y el valor es la instancia del tipo de letra. Expongo el mapa a través de un método get (clave de cadena) que devuelve nulo si la clave no está en el mapa.

+0

¡Me gusta esa idea! Sí, definitivamente no me preocupe demasiado acerca de la memoria adicional - Realmente dudo que sea suficiente cantidad de una diferencia significativa para preocuparse, y realmente la conveniencia vale la pena de todos modos. – kcoppock

+0

Gracias por su respuesta. Sí, no he tenido problemas de memoria con el éter. Solo me preocupaba que reutilizar un objeto Typeface pudiera causar que algo extraño sucediera con el texto. – Jona

+0

Bueno, no hay más respuestas en esta publicación. Ya estaba haciendo lo que sugirió Rich, pero estoy haciendo de esto mi respuesta. – Jona

Cuestiones relacionadas