[英]How to display image in android?
我在显示图像时遇到问题,问题是 glide 无法处理来自存储文件路径(uri)的图像,有人可以帮我吗?
这是我的代码
TextView browsefile, filename;
ImageView gambar;
int RequestFile = 2;
Context mContext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
browsefile = findViewById(R.id.browsefile);
filename = findViewById(R.id.filename);
gambar = findViewById(R.id.gambarfile);
mContext = MainActivity.this;
browsefile.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startOptionBrowseFile();
}
});
}
private void startOptionBrowseFile() {
Intent openFileIntent = new Intent(Intent.ACTION_GET_CONTENT);
openFileIntent.setType("*/*");
startActivityForResult(openFileIntent, RequestFile);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RequestFile && resultCode == RESULT_OK && data != null){
Uri selectedFile = data.getData();
File path = new File(selectedFile.getPath());
path.mkdirs();
Glide.with(mContext).load(path).into(gambar);
filename.setText(selectedFile.getPath());
}
}
更新,我找到了解决方案,我尝试使用 Bitmap 及其工作,
Bitmap bitmap = null;
try {
bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(),selectedFile);
Glide.with(mContext).load(bitmap).diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
.into(gambar);
} catch (IOException e) {
e.printStackTrace();
}
Glide.with(mContext)
.load(new File(selectedFile.getPath()))
.into(gambar);
尝试这个:
Glide.with(mContext).load(selectedFile.getPath()).into(gambar);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.