ImageView en Android se usa para mostrar imágenes de diferentes formatos. Las imágenes se configuran de acuerdo con el tamaño de ImageView independientemente del tamaño de la imagen. Sin embargo, ImageView no proporciona una disposición para acercar o alejar la imagen.
Entonces, en este artículo, le mostraremos cómo puede crear un programa para acercar y alejar una imagen 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: 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.
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="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:src="@drawable/img"/> </RelativeLayout>
Paso 3: 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.imageviewzoom import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.MotionEvent import android.view.ScaleGestureDetector import android.widget.ImageView import kotlin.math.max import kotlin.math.min class MainActivity : AppCompatActivity() { // Declaring GestureDetector, // ScalingFactor and ImageView private lateinit var mScaleGestureDetector: ScaleGestureDetector private var mScaleFactor = 1.0f private lateinit var mImageView: ImageView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // Initializing the ImageVIew and GestureDetector mImageView = findViewById(R.id.image_view_1) mScaleGestureDetector = ScaleGestureDetector(this, ScaleListener()) } // When touched, GestureDetector records the motion event override fun onTouchEvent(motionEvent: MotionEvent): Boolean { mScaleGestureDetector.onTouchEvent(motionEvent) return true } // Zooming in and out in a bounded range private inner class ScaleListener : ScaleGestureDetector.SimpleOnScaleGestureListener() { override fun onScale(scaleGestureDetector: ScaleGestureDetector): Boolean { mScaleFactor *= scaleGestureDetector.scaleFactor mScaleFactor = max(0.1f, min(mScaleFactor, 10.0f)) mImageView.scaleX = mScaleFactor mImageView.scaleY = mScaleFactor return true } } }
Producción:
Puede ver que podemos acercar y alejar.
Publicación traducida automáticamente
Artículo escrito por aashaypawar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA