¿Cómo escalar una imagen en ImageView para mantener la relación de aspecto en Android?

ImageView se utiliza para mostrar recursos de imagen como BitMap o Drawables. La clase ImageView o android.widget.ImageView hereda la clase android.view.View, que es la subclase de Kotlin.any_class. La aplicación de ImageView también consiste en aplicar tintes a una imagen para reutilizar un recurso dibujable y crear superposiciones en las imágenes de fondo. Además, ImageView también se usa para controlar el tamaño y el movimiento de una imagen. Para obtener más información sobre ImageView, consulte ImageView en Android con un ejemplo.

Implementación paso a paso

Para mantener la relación de aspecto de la imagen, utilice los siguientes pasos para escalar la imagen:

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 . El código para eso se proporcionó tanto en Java como en el lenguaje de programación Kotlin para Android.

Paso 2: Trabajar con los archivos XML

A continuación, vaya al archivo activity_main.xml , que representa la interfaz de usuario del proyecto. A continuación se muestra el código para el  archivo activity_main.xml . Se agregan comentarios dentro del código para comprender el código con más detalle. Importe cualquier logotipo para mostrar en app:srcCompat=”@drawable/<your_image>” .

XML

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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">
  
    <!-- 1. here layout_centerInParent makes image at center
         2. adjustViewBounds adjusts the bounds of the ImageView control to
            maintain the aspect ratio of the image displayed through it.
         3. scaleType used to scale the image throughout the ImageView -->
  
    <ImageView
        android:id="@+id/imageView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_centerInParent="true"
        android:adjustViewBounds="true"
        android:scaleType="fitXY"
        app:srcCompat="@drawable/gfglogo"
        tools:ignore="MissingConstraints" />
</androidx.constraintlayout.widget.ConstraintLayout>

Paso 3: trabajar con el archivo MainActivity

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

Kotlin

import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
  
class MainActivity : AppCompatActivity() {
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // for changing the background color of title bar
        val aBar = supportActionBar
        val cd = ColorDrawable(Color.parseColor("#FF00FF00"))
        aBar?.setBackgroundDrawable(cd)
    }
}

Java

import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.os.Bundle
import androidx.appcompat.app.ActionBar
import androidx.appcompat.app.AppCompatActivity;
  
public class MainActivity extends AppCompatActivity {
      
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // for changing the background color of title bar
        ActionBar aBar = getSupportActionBar();
        ColorDrawable cd = new ColorDrawable(Color.parseColor("#FF00FF00"));
        if (aBar != null) {
            aBar.setBackgroundDrawable(cd);
        }
    }
}

Producción:

Publicación traducida automáticamente

Artículo escrito por its_codezada17 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 *