Busco a replicar lo siguiente dentro de mi solicitud:una vista de texto en Android
Como se puede ver, es básicamente un botón que aumenta/disminuye el valor de la vista de texto contenida dentro de ella. Este botón tendrá tres estados visuales -> sin presionar, disminuir y aumentar (como se ve en la imagen de arriba, el usuario toca las flechas de aumento y el botón aparece presionado en ese lado)
Aquí están mis 3 estados de botón actualmente:
Como se puede ver, el problema que tengo es ser capaz de inclinar correctamente/girar la vista de texto para que se vea visualmente correcta y aparezca inclinado junto con el botón cuando un posible incremento o disminuido
He intentado dos enfoques diferentes hasta ahora:
crear una clase de vista de texto costumbre que reemplaza el método
onDraw()
para sesgar el lienzo:@Override public void onDraw(Canvas canvas) { canvas.save(); canvas.skew(0.2f, 0f); super.onDraw(canvas); canvas.restore(); }
integrar el
Rotate3dAnimation
clase (fuente here) y usó muchas variaciones diferentes para obtener el resultado deseado, tales como:Rotate3dAnimation skew = new Rotate3dAnimation( 30, 0, centerX, centerY, 0, false); txtAmount.startAnimation(skew);
Por desgracia, no estoy bastante conseguir el resultado exacto que refleje la primera imagen de arriba. Me estoy confundiendo con la configuración de valores con el eje Z, sesgar, rotar, etc.
Agradecería cualquier ayuda de cualquier persona que tenga experiencia con estas cosas. Gracias de antemano
Hola Parth, gracias por su respuesta. Al combinar los dos enfoques y, como dijiste, cambiando ligeramente los valores, estoy contento con el resultado final. Supongo que eventualmente llegaría allí, pero tu respuesta se aceleró :) – elgoog
¿Por qué una Actividad extiende un TextView? Seguramente eso es confuso ... –
es solo una mala elección de nombre @JamesGoodwin pero funciona genial! – Mars