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ómo obtener rápidamente el ancho y la altura de TextView utilizando Paint.getTextBounds ()?
- Forzar Renderscript para que se ejecute en CPU o GPU (Atleast para fines de ajuste de rendimiento)
- CREOOrUpdate de ORMLite parece lento - ¿cuál es la velocidad normal?
- Google Maps v2 Projection.toScreenLocation (...) muy lento
- Android: rendimiento lento con una gran imagen en ImageView
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…
- Optimización de las aplicaciones de Android
- Causa de la recursividad de los recorridos de travesía, tiempos de conmutación del buffer de egl largo
- La mejor manera de poblar las vistas
- FindViewById vs referencia local en la actividad
- Android: FPS bajo que dibuja muchos mapas de bits en una vista de superficie
- Aplicación de Android onLowMemory () en la API> = 14
- Inicio La actividad es lenta y la nueva actividad está vacía
- Android Studio es increíblemente lento y laggy
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?