voltear sola samsung rotar porque pantalla invertir imagen girar gira espejo como celular android matrix rotation image-rotation

sola - ¡Rotar una imagen alrededor de un punto especificado no funciona!(Androide)



rotar imagen (2)

Estoy rotando un ImageView con postRotate (grados de flotación, float px, float py), estableciendo px y py en algunos valores diferentes, incluidos (0,0) y (imgView.getHeight (), imgView.getWidth ()) pero se niega a girar alrededor de cualquier otro punto que no sea el centro. Me pregunto si tiene algo que ver con el hecho de que mi gravedad es el centro de LinearLayout.

Mi diseño:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center"> <ImageView android:id="@+id/imageTraj" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="matrix" android:src="@drawable/impactangle" />

Cómo estoy rotando la imagen:

matrix.postRotate(degrees,imageView.getHeight(),imageView.getWidth()); imageView.setImageBitmap(Bitmap.createBitmap(imageScaled, 0, 0, imageScaled.getWidth(), imageScaled.getHeight(), matrix, true));

PD. He notado que hay algunas preguntas similares, pero ninguna de ellas tiene respuestas adecuadas.


Estoy usando un ImageView personalizado donde establezco la rotación del ángulo.

public class CompassImage extends ImageView { private float angleRotation; public CompassImage(Context context) { super(context); } public CompassImage(Context context, AttributeSet attrs) { super(context, attrs); } public CompassImage(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public void setAngleRotation(float angleRotation) { this.angleRotation = angleRotation; invalidate(); } @Override protected void onDraw(Canvas canvas) { Rect clipBounds = canvas.getClipBounds(); canvas.save(); canvas.rotate(angleRotation, clipBounds.exactCenterX(), clipBounds.exactCenterY()); super.onDraw(canvas); canvas.restore(); } }

Si juegas con clipBounds, puede ser útil.


Un ligero "truco", probablemente podría ajustar el tamaño de la imagen usando algo como Paint.net o Gimp, dependiendo de su sistema operativo. Eso haría que la imagen parezca girar en otro punto. Sin embargo, esta solución sería inútil si planea usar muchas imágenes. Este es un tutorial de cubo giratorio que usa OpenGL.