Después de girar una línea lineal, los eventos onclick no cambian de posición después de la rotación
Tengo un linear linearout vertical con tres visiones de imagen clickable dentro del linearlayout. Cuando giro el lineal de 90 grados usando una animación simple surge el problema. Las vistas de imagen se rotan correctamente, pero los eventos onclick para las vistas de imagen no se giran junto con el linearlayout y permanecen en la posición original como antes de la animación.
A continuación se muestra mi código java principal
- La rotación de Css no se aplica en android (phonegap)
- Android: screenOrientation = "sensorPortrait" no funciona en API +17
- Android ProgressBar personalizado no está girando
- Android: gira el lienzo alrededor del centro de la pantalla
- Comprensión del uso de ImageView Matrix
westplayer = (LinearLayout) findViewById(R.id.linearLayout_west); // Create an animation instance Animation an = new RotateAnimation(0.0f, 180.0f, 32, 180); // Set the animation's parameters an.setDuration(0); // duration in ms an.setRepeatCount(0); // -1 = infinite repeated an.setRepeatMode(Animation.REVERSE); // reverses each repeat an.setFillAfter(true); // keep rotation after animation // Apply animation to linearlayout westplayer.setAnimation(an);
El código anterior maneja la parte de animación. El código siguiente sigue la animación y se supoze para actualizar las posiciones de disposición, pero no funciona para mí.
// Update Layout int top=westplayer.getTop(); int bottom=westplayer.getBottom(); int left=westplayer.getLeft(); int right=westplayer.getRight(); westplayer.layout(left, top , right, bottom );
El xml es como sigue:
<LinearLayout android:id="@+id/linearLayout_west" android:layout_width="42dp" android:layout_height="250dp" android:layout_alignParentLeft="true" android:layout_below="@+id/linearLayout_north" android:duplicateParentState="false" android:gravity="center" android:orientation="vertical" > <ImageView android:id="@+id/imageViewW1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/spades_14" /> <ImageView android:id="@+id/imageViewW2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/spades_14" android:layout_marginTop="-15dp" /> <ImageView android:id="@+id/imageViewW3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/spades_14" android:layout_marginTop="-15dp" /> </LinearLayout>
Tengo el código de disposición de la actualización de esto y también encontré otra solución que también he intentado esto y todavía no resultados positivos. Necesito esto para trabajar con API 10 . Cualquier ayuda es muy apreciada
- Android 1.6 Rotación de la cámara?
- Después de la rotación de la pantalla, se cambiará el idioma de mi aplicación
- Implementar un indicador de actividad giratoria similar a iOS en Android
- RotateAnimation sin duración
- Androide ImageView una rotación de dedo
- -webkit-transform no funciona en la vista web de Android
- Android Mejor forma de evitar Diálogos para descartar después de una rotación del dispositivo
- Cómo hacer menú giratorio
Sí, obtuvo el resultado esperado.
Dado que la animación en android sólo intenta aplicar una matriz de transformación en el mapa de bits de la vista, no cambia la posición y el tamaño de la vista.
Así que después de su animación, aunque setFillAfter(true)
para que la vista parezca girada, pero de hecho la vista todavía está en el mismo lugar y no se mueve un poco.
El problema que enfrenta, es porque se utiliza una animación Tween. La vista girará y sólo se moverá la parte visible. Pero las posiciones del ImageView permanecerán iguales a las definidas en el diseño. Es por eso que el área seleccionable permanece igual.
Para redefinir la posición, de acuerdo con la animación tendrá que utilizar una animación de propiedades , como un ObjectAnimator
o un ValueAnimator
. Con esto las propiedades definidas en xml serán actualizadas. Ahora las áreas clickable se mueven junto con las vistas.
- cómo escribir una configuración proguard para una lib de servicio remoto
- El archivo SVG se ejecuta correctamente en Emulator pero da error en Real Device?