Glide的Android图像下载问题

时间:2019-05-07 09:53:20

标签: java android android-glide imagedownload

我已经开始遇到Glide Image Download的问题。

我的应用程序在Glide版本4.8.0和minSdkVersion 21targetSdkVersion 26compileSdkVersion 28上运行。

问题是Glide无法从Apple News下载图像,并导致其锁定并导致应用程序崩溃。图片的网址为https://c.apple.news/AgEXQU9SSmFycEhYUUVlSkxKUE52XzN1M1EAMA

执行图像下载的代码为:

Glide.with(context)
.setDefaultRequestOptions(getRequestOptionsForImage(item.ContentPersonStatusUpdate.widthURLImageWidth,context.getResources().getDimensionPixelSize(R.dimen.image_height_external_link),context))
.asBitmap()
.load(https://c.apple.news/AgEXQU9SSmFycEhYUUVlSkxKUE52XzN1M1EAMA)
.into(imageViewContent);

public static RequestOptions getRequestOptionsForImage(int width, int height, Context context){
        return  new RequestOptions().skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.AUTOMATIC).override(width,height).placeholder(context.getDrawable(R.drawable.ic_news_thumbnail_loading));
    }

有关此问题的任何想法/解决方案?仅对于Apple News Image URL,会出现此问题。

***更新

我尝试使用以下代码下载图片。没有反应,甚至连捕获都不会触发。

new DownloadImageTask(imageViewContent).execute(https://c.apple.news/AgEXQU9SSmFycEhYUUVlSkxKUE52XzN1M1EAMA);


private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
        ImageView bmImage;
        public DownloadImageTask(ImageView bmImage) {
            this.bmImage = bmImage;
        }

        protected Bitmap doInBackground(String... urls) {
            String urldisplay = urls[0];
            Bitmap bmp = null;
            try {
                InputStream in = new java.net.URL(urldisplay).openStream();
                bmp = BitmapFactory.decodeStream(in);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return bmp;
        }
        protected void onPostExecute(Bitmap result) {
            bmImage.setImageBitmap(result);
        }
    }

1 个答案:

答案 0 :(得分:0)

Serkan您的代码正确,除了请求选项部分。 我尝试下面的代码并正常工作:

    String url="https://c.apple.news/AgEXQU9SSmFycEhYUUVlSkxKUE52XzN1M1EAMA";

    RequestOptions requestOptions = new RequestOptions();
    requestOptions.error(R.drawable.img_placeholder);
    Glide.with(context)
            .setDefaultRequestOptions(requestOptions)
            .load(url)
            .into(imgImage);

我也尝试使用您的代码而不使用如下所示的请求选项:

    Glide.with(context)
            .asBitmap()
            .load(url)
        .into(imgImage);

也很好

当我尝试与您的请求选项代码一起使用时,它告诉我使用@RequiresApi(LOLLIPOP)批注。可能您正在使用以下api测试应用,但该方法无效。