¿Cómo rotar una imagen a un cierto ángulo en Android?

En Android, ImageView se usa para mostrar imágenes. Las imágenes pueden ser de cualquier tipo y pueden obtenerse localmente o desde una red. Las imágenes se muestran sin ninguna operación en ImageView. Sin embargo, las imágenes se pueden rotar hasta cierto ángulo y mostrarse en ImageView. Entonces, en este artículo, le mostraremos cómo puede rotar una imagen mediante programación en un ángulo y mostrarla en ImageView en Android. Siga los pasos a continuación una vez que el IDE esté listo.

Implementación paso a paso

Paso 1: crea un nuevo proyecto en Android Studio

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Demostramos la aplicación en Kotlin, así que asegúrese de seleccionar Kotlin como idioma principal al crear un nuevo proyecto.

Paso 2: agregar una imagen en res> carpeta dibujable

Copie la imagen en la carpeta dibujable en la carpeta de recursos como se muestra a continuación.

Paso 3: trabajar con el archivo activity_main.xml

Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. A continuación se muestra el código para el archivo activity_main.xml . Agregue un ImageView para mostrar la imagen, un EditText para ingresar grados (entero) para rotar y un Botón para ejecutar la rotación.

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
  
    <ImageView
        android:id="@+id/image_view_1"
        android:layout_width="300sp"
        android:layout_height="300sp"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50sp"
        android:src="@drawable/img"/>
  
    <EditText
        android:id="@+id/edit_text_1"
        android:layout_width="50sp"
        android:layout_height="60sp"
        android:inputType="number"
        android:layout_centerHorizontal="true"
        android:layout_below="@id/image_view_1"
        android:layout_marginTop="100sp"/>
  
    <Button
        android:id="@+id/button_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_below="@id/edit_text_1"
        android:layout_marginTop="20sp"
        android:text="rotate"/>
  
</RelativeLayout>

Paso 4: trabajar con el archivo MainActivity.kt

Vaya al archivo MainActivity.kt y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.kt . Se agregan comentarios dentro del código para comprender el código con más detalle.

Kotlin

package org.geeksforgeeks.programmaticallyrotateiv
  
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.ImageView
import android.widget.Toast
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Declaring and Initializing the ImageView, 
        // EditText and Button from the layout file
        val mImageView = findViewById<ImageView>(R.id.image_view_1)
        val mEditText = findViewById<EditText>(R.id.edit_text_1)
        val mButton = findViewById<Button>(R.id.button_1)
  
        // When button is clicked
        mButton.setOnClickListener {
            // EditText value is converted to 
            // float and rotation is applied
            if(mEditText.text.isNotEmpty()){
                val mAngleRotate = (mEditText.text.toString() + "f").toFloat()
                mImageView.rotation = mAngleRotate
            } else {
                Toast.makeText(applicationContext, "Field cannot be empty", Toast.LENGTH_SHORT).show()
            }
        }
    }
}

Producción:

Puede ver que se muestra la imagen girada.

Publicación traducida automáticamente

Artículo escrito por aashaypawar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *