En este artículo vamos a aprender a colocar una imagen en las coordenadas tocadas en la pantalla. Podemos insertar múltiples imágenes en la pantalla. onTouchListener se utilizará para obtener las coordenadas de la posición tocada en la pantalla para que la imagen se pueda insertar en esa posición. A continuación se proporciona un GIF de muestra para tener una idea de lo que vamos a hacer en este artículo. Tenga en cuenta que vamos a implementar este proyecto utilizando el lenguaje Kotlin .
Implementación paso a paso
Paso 1: crear un nuevo proyecto
Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Kotlin como lenguaje de programación.
Paso 2: Establecer RelativeLayout en el diseño
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 .
XML
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/layout" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> </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
import android.annotation.SuppressLint import android.os.Bundle import android.view.MotionEvent import android.view.ViewGroup import android.widget.ImageView import android.widget.RelativeLayout import androidx.appcompat.app.AppCompatActivity class MainActivity : AppCompatActivity() { lateinit var areaLayout: RelativeLayout @SuppressLint("ClickableViewAccessibility") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) areaLayout = findViewById(R.id.layout) areaLayout.setOnTouchListener { view, event -> if (event.action == MotionEvent.ACTION_DOWN) { val x = event.x.toInt() // get x-Coordinate val y = event.y.toInt() // get y-Coordinate val lp = RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT) // Assuming you use a RelativeLayout val iv = ImageView(applicationContext) lp.setMargins(x, y, 0, 0) // set margins iv.layoutParams = lp iv.setImageDrawable(resources.getDrawable(R.drawable.flower)) // set the image from drawable (view as ViewGroup).addView(iv) // add a View programmatically to the ViewGroup } true } } }
Ahora, ejecuta la aplicación
Producción:
Código fuente: Haga clic aquí