ImageView dinámico en Kotlin

Un ImageView , como sugiere el nombre, se usa para mostrar imágenes en aplicaciones de Android. En este artículo, discutiremos cómo crear un ImageView mediante programación en Kotlin.

El primer paso es crear un nuevo proyecto en Android Studio. Para ello sigue estos pasos: 

  • Haga clic en Archivo, luego en Nuevo y luego en Nuevo proyecto , y asigne el nombre que desee.
  • Luego, seleccione Compatibilidad con el idioma Kotlin y haga clic en el botón siguiente .
  • Seleccione SDK mínimo, lo que necesite.
  • Seleccione Actividad vacía y luego haga clic en finalizar .

Después de hacer esto, verá algunos directorios en el lado izquierdo después de que su proyecto/gradle haya terminado de cargarse. Debe tener un aspecto como este:

Después de eso, tenemos que diseñar nuestro diseño. Para eso, necesitamos trabajar con el archivo XML. Ve a app > res > layout y pega el siguiente código:

Modificar 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"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:id="@+id/layout"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
 
    <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="20dp"
            android:text="Add Image"
            android:layout_centerInParent="true"/>
 
 
</RelativeLayout>

Adición de imágenes 
Necesitaremos una imagen para usarla en la aplicación. Puede usar las imágenes que desee, pero las imágenes deben copiarse desde la ruta de nuestra computadora local a la carpeta app/res/drawable.

Crear ImageView en el archivo MainActivity.kt

Abra app/src/main/java/yourPackageName/MainActivity.kt y realice los siguientes cambios:
Cree un widget ImageView como este: 

 val imageView = ImageView(this)
        // setting height and width of imageview
        imageView.layoutParams = LinearLayout.LayoutParams(400, 400) 
        imageView.x = 20F //setting margin from left
        imageView.y = 20F //setting margin from top

luego agregue el widget en el diseño usando esto

        //accessing our relative layout from activity_main.xml
        val layout = findViewById(R.id.layout) 
        // Add ImageView to LinearLayout
        layout?.addView(imageView) //adding image to the layout

MainActivity.kt

Java

package com.geeksforgeeks.myfirstKotlinapp
 
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.RelativeLayout
 
class MainActivity : AppCompatActivity() {
 
    override fun onCreate(savedInstanceState: Bundle?)
    {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        val imageView = ImageView(this)
        // setting height and width of imageview
        imageView.layoutParams= LinearLayout.LayoutParams(400, 400)
        imageView.x= 20F // setting margin from left
        imageView.y= 20F // setting margin from top
 
        // accessing our custom image which we added in drawable folder
        val imgResId = R.drawable.img
        var resId = imgResId
 
        // button onClick listener
        val button = findViewById<Button>(R.id.button)
        button?.setOnClickListener{
            imageView.setImageResource(resId)
        }
        // accessing our relative layout from activity_main.xml
        val layout = findViewById<RelativeLayout>(R.id.layout)
 
        // Add ImageView to LinearLayout
        layout?.addView(imageView) // adding image to the layout
    }
}

Archivo AndroidManifest.xml

XML

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="i.apps.imageview">
 
    <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
 
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
 
</manifest>

Ejecutar como emulador:

Publicación traducida automáticamente

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