2010-06-23 12 views
16

Estoy leyendo acerca de setDrawingCacheEnabled y getDrawingCache y me preguntaba cuándo es bueno usarlo o cuando no es bueno.Android - caché de dibujo - ¿cuándo es útil?

Básicamente en mi caso tengo un HorizontalScrollView con muchas cosas dentro, por lo que se desplaza hacia la izquierda/derecha y la mayoría de las cosas no son visibles.

Si uso setDrawingCacheEnabled(true) en las vistas, ¿me ayuda? ¿o solo cuando uso vistas personalizadas y llamo al getDrawingCache()?

¿Hay alguna otra forma de 'caché' para usar en un HorizontalScrollView?

Respuesta

5

TouchInterceptor.java - Esta es la clase responsable de reordenar su lista de reproducción en el reproductor de música predeterminado. Utiliza setDrawingCacheEnabled cuando comienza a arrastrar la vista actual. Básicamente, crea un mapa de bits a partir del elemento ListView y lo arrastra. Eche un vistazo más de cerca al método onInterceptTouchEvent.

+1

El enlace está muerto. Lamentablemente no pude encontrar ningún buen ejemplo de su uso con el método onInterceptTouchEvent. – tomrozb

+1

El enlace está muerto – Gallal

+1

https://github.com/android/platform_packages_apps_music/blob/master/src/com/android/music/TouchInterceptor.java –

4

Definitivamente es útil para capturas de pantalla como dijo Marcel. También es muy útil para el rendimiento, ya que para eso fue creado. Utiliza más memoria, al hacer que la vista se convierta primero en un mapa de bits.

Lo que hace es, usted setDrawingCacheEnabled a true, llame al getDrawingCache que devuelve un mapa de bits y almacena este mapa de bits. En onDraw, dibuja el mapa de bits que tienes si la caché está activada, o la vista de lo contrario. Esto puede ser muy bueno cuando se desplaza.

+0

Estoy intentando arrastrar y soltar imágenes de una celda de una grilla a otra. ¿Puedo usar este mecanismo? Si es así, ¿qué debería cambiar en mi código? ¿Por favor, ayúdame? –

Cuestiones relacionadas