Mi aplicación se desplaza muy mal después de importar la fuente roboto en la carpeta assets / fonts
Mi aplicación que ejecuta sándwich de helado de Android, después de importar las fuentes roboto.ttf y roboto-bold.ttf en la carpeta de fuentes y después de establecer cuatro vistas de texto con estas fuentes, es muy (MUY) lenta mientras se desplaza el listview. ¿Alguien sabe un método para optimizar las actuaciones? ¿Hay consejos y trucos para mejorar la velocidad?
Aclaro que fue muy suave antes de insertar estas líneas de código:
- C + + pura aplicación para Android y su rendimiento
- Android app lento tiempo inicial de inicio
- Cómo trabajar alrededor de la demora / lento WebView representación que se produce en algunos dispositivos?
- Android - Declarativa vs interfaz de usuario programática
- Corona rendimiento?
Typeface roboto = Typeface.createFromAsset(activity.getAssets(), "fonts/Roboto-Regular.ttf"); Typeface robotobold = Typeface.createFromAsset(activity.getAssets(), "fonts/Roboto-Bold.ttf"); nome.setTypeface(robotobold); mq.setTypeface(roboto); citta.setTypeface(roboto); prezzo.setTypeface(roboto); descrizione.setTypeface(roboto);
Añado la clase que puede ayudar con la caché de fuentes:
public class TypefaceCache { private final HashMap<String, Typeface> map; private Context con; public TypefaceCache(Context con) { map = new HashMap<String, Typeface>(); this.con = con; } public Typeface getTypeface(String file) { Typeface result = map.get(file); if (result == null) { result = Typeface.createFromAsset(con.getAssets(), file); map.put(file, result); } return result; } }
Llamo a la clase ya la fuente a través de
TypefaceCache typecache = new TypefaceCache(activity); Typeface roboto = typecache.getTypeface("fonts/Roboto-Regular.ttf");
Pero el resultado es el mismo…
- Throwable: No se pudo crear la tarjeta SD
- Android: Actualiza los datos de fragmento anteriores cuando se pulsa el botón de retroceso
- Compresión de imagen de Android sin carga completa en la memoria
- Comportamiento de vista Web con Galaxy S cargar página web toma edades
- Manejo de mapas de bits grandes
- Causa de la recursividad de los recorridos de travesía, tiempos de conmutación del buffer de egl largo
- ¿Por qué android: singleLine = "true" hace el desplazamiento ListView muy laggy?
- GetItem vs. getItemAtPosition
Usted podría intentar poner en caché su Typeface
.
public class TypefaceCache { private final HashMap<String, Typeface> map = new HashMap<String, Typeface>(); private Typeface getTypeface(String file, Context context) { Typeface result = map.get(file); if (result == null) { result = Typeface.createFromAsset(context.getAssets(), file); map.put(file, result); } return result; } }
Tuve este problema no hace mucho tiempo, la solución era establecer la clase a estática, al igual que se describe en este blog ;
public class TypefaceSingleton { private static TypefaceSingleton instance = new TypefaceSingleton(); private TypefaceSingleton() {} public static TypefaceSingleton getInstance() { return instance; } public Typeface getTypeface() { return Typeface.createFromAsset(ThinkNearApp.getContext().getResources().getAssets(), "fonts/Roboto-Bold.ttf"); } }
Esta es mi solución: en el asynctask en el que i iniciar el ui i insertar la variable de clase
private final HashMap<String, Typeface> map;
Y luego lo inicializar a través del constructor de clase
map = new HashMap<String, Typeface>();
Implemento el método que carga mi tipo de letra en la clase:
private Typeface getTypeface(String file, Context context) { Typeface result = map.get(file); if (result == null) { result = Typeface.createFromAsset(context.getAssets(), file); map.put(file, result); } return result; }
Entonces, cuando quiero en el asynctask, agrego mi tipo de letra favorito i cargado en mi textviews y todo es muy suave. Gracias a todos
- Android ViewPager w / varias clases de fragmentos cada w / archivo de diseño independiente
- Ahorro de la vida de la batería con el acabado () y explícita Botones de salida?