我已经开始遇到Glide Image Download的问题。
我的应用程序在Glide版本4.8.0和minSdkVersion 21
,targetSdkVersion 26
和compileSdkVersion 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);
}
}
答案 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测试应用,但该方法无效。