Android -- 如何从 https 获取图片

Posted

技术标签:

【中文标题】Android -- 如何从 https 获取图片【英文标题】:Android -- How to get images from https 【发布时间】:2018-03-12 19:15:41 【问题描述】:

我正在尝试使用 AsyncTask 从 https URL 下载位图数组中的图像

这是我的 AsyncTask 代码:

class GetImages extends AsyncTask<String,Void,Bitmap>
        int position;
        public GetImages(int i)
            position=i;
        
        @Override
        protected void onPreExecute()     

        @Override
        protected Bitmap doInBackground(String... strings) 
            Log.i(TAG,"Enter in background!!!!!!!!!!!!!!!!!!");
            String src=strings[0];
            Bitmap bitmap=null;
            InputStream in;
            int responseCode=-1;
            try 
                URL url = new URL(src);

                HttpsURLConnection httpURLConnection = (HttpsURLConnection) url.openConnection();
                httpURLConnection.setDoOutput(true);
                httpURLConnection.connect();
                responseCode = httpURLConnection.getResponseCode();
                if (responseCode == HttpURLConnection.HTTP_OK) 
                    in = httpURLConnection.getInputStream();
                    bitmap = BitmapFactory.decodeStream(in);
                    in.close();
                
                Log.i(TAG,"OK!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
             catch (MalformedURLException e) 
                Log.i(TAG,"!!!!!!!!!Errore1");
                e.printStackTrace();
             catch (IOException e) 
                Log.i(TAG,"!!!!!!!!!Errore2");
                e.printStackTrace();
            
            return bitmap;
        

        @Override
        protected void onPostExecute(Bitmap bitmap) 
            Log.i(TAG,"Saving!!!!!!!!!!!!!!!!!!!!!!!");
            image[position]=bitmap;
        

    

其中 image[] 是一个位图数组

然后我执行我的 AsyncTask:

for(i=0;i<Array.length;i++)
...
new GetImages(i).execute(MyHttpsURL[i]);

我想要做的是从我的 https url 中保存图像并将其保存在位图数组中以在 RecyclerView 中重用它。问题是我的代码似乎没有下载并将图像放入数组中,因为当我在回收站视图中使用 image[] 时,应该显示下载图像的 ImageViews 是空的。 我的错误是什么?如何将 https 中的图像保存在位图数组中?

【问题讨论】:

数组中有什么? lenght 应该是 length 1) 你有任何错误吗? 2)首先下载您的文件吗? 我建议您使用外部库来执行此操作。到目前为止我用过的最好的是:Volley 和 Picasso 不,我没有收到任何错误,应用程序没有崩溃,图像根本没有下载 我推荐 Glide github.com/bumptech/glide 它来自 google,这是最好的 【参考方案1】:

您可以使用像 Picasso 这样的图像加载器库并保存其位图值

Get Bitmap from ImageView loaded with Picasso

【讨论】:

以上是关于Android -- 如何从 https 获取图片的主要内容,如果未能解决你的问题,请参考以下文章

Android从Uri获取视频图片的真实地址

如何从图库中的图像中获取(提取)文本并搜索该文本 - Android?

Android-从音频文件中获取专辑图片

Android-从音频文件中获取专辑图片

Android之简单了解Bitmap显示图片及缓存图片

如何从包含 Android 上自动下载图片的 url 中读取图片?