Android Glide 图片下载问题

Android Image Download problem with Glide

我开始遇到 Glide 图片下载问题。

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

问题是 Glide 无法从 Apple News 下载图像并导致它锁定和崩溃应用程序。图片的URL为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));
    }

关于这个问题有任何idea/solution吗?此问题仅发生在 Apple News Image URLs.

***更新

我试过用下面的代码下载图片。得不到任何回应,连抓到都不开火。

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);
        }
    }

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 中测试应用程序并且该方法不起作用。