在 Android 中,ImageView 用于在本地和外部显示图像。在本地,可以从设备内存或可用的项目文件夹中获取图像。在外部,可以从网站加载图像。网站上显示的图像的 URL 被解码,可以使用位图工厂显示。位图工厂帮助将图像转换为位图。将图像转换为位图后,可以将其本地存储在设备上。因此,在本文中,我们将向您展示如何编写上述过程以在 Android 中下载图像。 IDE 准备就绪后,请按照以下步骤操作。
分步实施
第 1 步:在 Android Studio 中创建一个新项目
要在 Android Studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。我们在Kotlin中演示了该应用程序,因此请确保在创建新项目时选择 Kotlin 作为主要语言。
第 2 步:使用 AndroidManifest.xml
由于我们要使用互联网运行应用程序并将数据保存在设备存储中,我们将在清单文件中声明以下两个权限。
XML
XML
Kotlin
package org.geeksforgeeks.downloadimage
import android.content.ContentValues
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.net.Uri
import android.os.*
import android.provider.MediaStore
import android.widget.Button
import android.widget.ImageView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import java.io.*
import java.net.HttpURLConnection
import java.net.MalformedURLException
import java.net.URL
import java.util.concurrent.Executors
open class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Declaring and initializing the elements from the layout file
val mImageView = findViewById(R.id.image_view_1)
val mButton = findViewById
第 3 步:使用 activity_main.xml 文件
导航到app > res > layout > activity_main.xml并将以下代码添加到该文件。下面是activity_main.xml文件的代码。添加一个 ImageView 和一个 Button,如下所示。我们将使用 Button 在 ImageView 中显示来自网页的图像。
第 4 步:使用 MainActivity.kt 文件
转到MainActivity.kt文件并参考以下代码。下面是MainActivity.kt文件的代码。代码中添加了注释以更详细地理解代码。
科特林
package org.geeksforgeeks.downloadimage
import android.content.ContentValues
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.net.Uri
import android.os.*
import android.provider.MediaStore
import android.widget.Button
import android.widget.ImageView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import java.io.*
import java.net.HttpURLConnection
import java.net.MalformedURLException
import java.net.URL
import java.util.concurrent.Executors
open class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Declaring and initializing the elements from the layout file
val mImageView = findViewById(R.id.image_view_1)
val mButton = findViewById
输出:
可以看到,当我们点击 Button 时,URL 处的 Image 被加载到 ImageView 中并存储在设备上。
下面是从 Gallery 应用程序中保存的图像的屏幕截图。