Muchas aplicaciones muestran imágenes de Internet utilizando API de terceros como Glide y Picasso para cargar imágenes. Esto significa que dichas aplicaciones dependen en parte de estos servicios para seguir funcionando correctamente. Para mejorar la aplicación, uno debe escribir su propio código en lugar de depender de tales servicios. En este artículo, le mostraremos cómo puede cargar fácilmente imágenes en su aplicación sin utilizar ningún servicio externo.
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 permiso de Internet en AndroidManifest.xml
Dado que las imágenes tienen la forma de URL, la aplicación necesitará permisos de Internet para analizar la información.
XML
<uses-permission android:name="android.permission.INTERNET"/>
Paso 3: crea un ImageView en el diseño
aplicación > res > diseño > actividad_principal.xml actividad_principal.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:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <!-- The image will load in this ImageView --> <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true"/> </RelativeLayout>
Paso 4: programa para cargar la imagen desde la URL y mostrarla en ImageView
Actividad principal.kt Actividad principal.kt
Kotlin
import android.graphics.Bitmap import android.graphics.BitmapFactory import android.os.Bundle import android.os.Handler import android.os.Looper import android.widget.ImageView import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import java.util.concurrent.Executors class MainActivity : AppCompatActivity(){ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // Declaring and initializing the ImageView val imageView = findViewById<ImageView>(R.id.imageView) // Declaring executor to parse the URL val executor = Executors.newSingleThreadExecutor() // Once the executor parses the URL // and receives the image, handler will load it // in the ImageView val handler = Handler(Looper.getMainLooper()) // Initializing the image var image: Bitmap? = null // Only for Background process (can take time depending on the Internet speed) executor.execute { // Image URL val imageURL = "https://media.geeksforgeeks.org/wp-content/cdn-uploads/gfg_200x200-min.png" // Tries to get the image and post it in the ImageView // with the help of Handler try { val `in` = java.net.URL(imageURL).openStream() image = BitmapFactory.decodeStream(`in`) // Only for making changes in UI handler.post { imageView.setImageBitmap(image) } } // If the URL doesnot point to // image or any other kind of failure catch (e: Exception) { e.printStackTrace() } } } }
Producción:
Podemos ver que la imagen se carga correctamente. Esto significa que la aplicación funciona perfectamente según lo previsto.
Publicación traducida automáticamente
Artículo escrito por aashaypawar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA