2011-10-04 16 views
9

Tengo un problema con los artefactos visuales en la pantalla al aplicar la transformación 3D que se encuentra here. Cambié esto para que gire alrededor del eje x en lugar de y. Cuando hago una rotación de 180 grados (la parte superior se aleja de ti al principio) obtengo artefactos de línea de píxel individuales en el área inferior (10-20% inferior) de cada otra vista a la que se aplica. Estoy usando un selector como fondo de un LinearLayout y luego le aplico esta animación. ¿Alguien puede pensar en una solución rápida a este problema?Android - Artefactos que usan la animación

¡Gracias por cualquier ayuda!

+0

Sólo tenían el mismo problema, el único comentario que añadiría es que el 1.6 - 3.0 pre dispositivos consigo los objetos, sino en 3.0+ dispositivos, lo que permite la aceleración de hardware resuelve el problema. –

Respuesta

11

Resulta que solo tiene que invalidar la vista principal en cada paso de animación. Si tiene un objeto de Animación personalizado, puede hacer esto dentro de Animation.applyTransformation (...)

+0

Salvaste mi vida – Carnal

+1

contento de estar de servicio - sabía que responder a mis propias preguntas sería útil algún día :) – Dori

+1

Acabo de toparme con esto también, aclaró los problemas que estaba teniendo. Este error solo parecía afectar a los dispositivos 2.3 y inferiores (incluido el Kindle Fire) y parecía estar bien en mis diversos dispositivos de 4.0+. – jjb

0

Tuve un problema similar con una animación 2D donde se quitaba una Vista de la pantalla (fuera de la vista principal). Mi solución fue bastante simple. En mi vista personalizada, simplemente invalido la vista principal para que se vuelva a dibujar en cada fotograma.

@Override 
protected void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    ((View) this.getParent()).invalidate(); 
    canvas.drawBitmap(icon, bm_x, bm_y, mPaint); 
}