如何在 Android 上的 ImageView 上显示来自网站的图像?

Posted

技术标签:

【中文标题】如何在 Android 上的 ImageView 上显示来自网站的图像?【英文标题】:How to display images from a website on ImageView on Android? 【发布时间】:2017-08-27 01:37:50 【问题描述】:

单击按钮时,我只能使用 AsyncTask 从网站中提取 1 张图片;但是,我想同时显示更多图像,并且它们可以自己显示而无需单击任何内容。 这是我的代码”

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;

import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.concurrent.ExecutionException;

import javax.net.ssl.HttpsURLConnection;

public class MainActivity extends AppCompatActivity 

ImageView downloadedImg;

   public void downLoad(View view) 

        ImageDownloader task = new ImageDownloader();
        Bitmap myImage;
        try 
            myImage = task.execute("https://i.ytimg.com/vi/tntOCGkgt98/maxresdefault.jpg").get();
            downloadedImg.setImageBitmap(myImage);


         catch (Exception e) 
            e.printStackTrace();
        
    

    public class ImageDownloader extends AsyncTask <String, Void, Bitmap>

        @Override
        protected Bitmap doInBackground(String... urls) 

            try 
                URL url = new URL(urls[0]);

                HttpURLConnection connection = (HttpURLConnection) url.openConnection();

                connection.connect();

                InputStream inputStream = connection.getInputStream();

                Bitmap myBitmap = BitmapFactory.decodeStream(inputStream);

                return myBitmap;

             catch (Exception e) 
                e.printStackTrace();
            
            return null;
        
    
    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        downloadedImg = (ImageView) findViewById(R.id.imageView);

    

【问题讨论】:

您有已知的图像列表还是动态获取列表? 【参考方案1】:

相信你知道要下载的图片的网址

我建议你使用Picasso 或Glide

毕加索:

compile 'com.squareup.picasso:picasso:2.5.2'

Picasso.with(context).load(url).into(imageView);

滑翔:

compile 'com.github.bumptech.glide:glide:3.7.0'

Glide.with(context).load(url).into(imageView);

【讨论】:

非常感谢。那么,如果我想在下面显示图像及其描述,您认为我可以采取哪些方法? 如果您拥有该网站,我的建议是从您的服务器获取一个包含所有照片 url 和描述的 json 数组。

以上是关于如何在 Android 上的 ImageView 上显示来自网站的图像?的主要内容,如果未能解决你的问题,请参考以下文章

Android 圆角、圆形 ImageView 实现

在 ImageView 中显示图像并将其保存到 Android 上的内部存储中

android 中怎么控制ImageButton 上的图片与按钮尺寸的匹配

Android Dev:从存储在 SD 卡上的临时文件创建位图,设置 ImageView,然后将其存储在本地

如何从 Android 上的 Firebase 存储正确下载多个文件?

android:将灰度过滤器设置为imageView