任务: 将URL中的setImageBitmap放入recyclerview项中,并使用PDFBox lib获取包含所有recyclerview项(包括这些项中的图像)的PDF文件。
问题: 将url图像转换为位图不需要在主线程上工作,这使得创建的pdf文件没有将图像设置为其位置(图像位置为空白)。
允许在主线程上工作会使应用程序崩溃或太慢。
final BitmapFactory.Options options = new BitmapFactory.Options();
// down sizing image as it throws OutOfMemory Exception for larger
// images
options.inSampleSize = 10;
Bitmap bitmap = null;
URL url = null;
try {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
url = new URL(imag_path);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
bitmap = BitmapFactory.decodeStream(url.openConnection().getInputStream());
} catch (IOException e) {
e.printStackTrace();
}
return bitmap;
产生的PDF照片如下:
答案 0 :(得分:0)
使用滑行将图像下载到主线程中
Glide.with(getApplicationContext())
.asBitmap()
.load("URL")
.listener(new RequestListener<Bitmap>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Bitmap> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(Bitmap resource, Object model, Target<Bitmap> target, DataSource dataSource, boolean isFirstResource) {
return false;
//YOU GET THE DOWNLOADED BITMAP HERE
}
});