我正在从动态来源加载图像并将其加载到我的应用程序中。但是有时图像太小,在我的应用中看起来很糟糕。我要做的是获取图像大小,如果小于5x5,则完全不显示ImageView。
如何实现呢?
当我使用sizeReadyCallback时,它返回ImageView的大小而不是图像。当我使用请求侦听器时,它返回0,0。
Glide.with(getContext()).load(imageUrl).listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
//This returns 0,0
Log.e("TAG","_width: " + resource.getBounds().width() + " _height:" +resource.getBounds().height());
return false;
}
}).into(ivImage).getSize(new SizeReadyCallback() {
@Override
public void onSizeReady(int width, int height) {
//This returns size of imageview.
Log.e("TAG","width: " + width + " height: " + height);
}
});
Run Code Online (Sandbox Code Playgroud) 我想获取我用 Intent.ACTION_OPEN_DOCUMENT 选择的文件的文件扩展名。如何获得?
这就是我启动选择器的方式:
private void startFilePicker(){
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
startActivityForResult(intent, CODE_ACTION_OPEN_DOCUMENT_FILE);
}
Run Code Online (Sandbox Code Playgroud)
这是选择文件时的回调:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//region New Picker
if (requestCode == CODE_ACTION_OPEN_DOCUMENT_FILE){
if (resultCode == RESULT_OK){
if (data != null){
if (data.getData() != null){
Uri uri = data.getData();
//Get file extension here.
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试通过执行以下操作来获取文件路径时uri.getPath(),我得到类似image:105571, 或 的信息acc=1;doc=9204。所以我无法从路径中获取它。
问题是如何确定所选文件的文件扩展名?