📜  在 Android 中从 URL 下载图像

📅  最后修改于: 2022-05-13 01:54:22.715000             🧑  作者: Mango

在 Android 中从 URL 下载图像

在 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 中显示来自网页的图像。

XML



  
    
  
    

第 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 应用程序中保存的图像的屏幕截图。