我有这个图像字节数组,我从相机中获取并将其转换为文件,然后发送回我的其他活动以设置图像视图。
回馈主要活动的相机活动文件
File myfile = new File(new File(getFilesDir(), PHOTOS), "img1.jpg");
deleteFile(myfile.getName());
myfile.delete();
myfile.createNewFile();
myfile.getParentFile().mkdirs();
Log.e("convertTofile: ", Thread.currentThread() + "");
FileOutputStream fos = null;
fos = new FileOutputStream(myfile.getPath());
Log.e("convertTofile: ", "writing file");
fos.write(myImageArray);
fos.flush();
fos.getFD().sync();
fos.close();
Intent intent = new Intent().putExtra("fotouri", Uri.fromFile(myfile));
setResult(RESULT_OK, intent);
finish();
主要活动设置图片
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) { Uri myuri = (Uri) data.getExtras().get("fotouri");
Glide.with(this).load(myuri)
.asBitmap()
.transform(new RotateTransformation(this,90))
.placeholder(R.mipmap.ic_launcher)
.into(img1);
}
我的问题是,如果我第一次正确执行此代码图像设置,但如果我尝试拍摄另一个照片并返回主要活动agin图像仍然是相同的
答案 0 :(得分:2)
这是因为滑行是第一次加载时缓存图像,每当您请求第二次滑行时,将从缓存加载图像。
其中一个解决方案是告诉滑行不要缓存任何图像,如下所示: -
Glide.with(this).load(myuri)
.asBitmap()
.transform(new RotateTransformation(this,90))
.placeholder(R.mipmap.ic_launcher)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
.into(img1);
因此,这可确保始终滑行加载最新图像。