java - 在android中创建文件路径
问题描述
当我在图库中裁剪现有图像时的代码
final Uri uri = result.getUri();
StorageReference thumb_filepath = mStorage.child("Raw").child(UID + ".jpg");
File thumb_filePath = new File(uri.getPath());
Log.d("DFGHJKFGHJ", "CREATED FILEEEE" + thumb_filePath);
日志猫结果
02-23 13:51:20.053 11130-11130/com.appmaster.akash.messageplus D/DFGHJKFGHJ: CREATED FILEEEE/data/user/0/com.appmaster.akash.messageplus/cache/cropped9075402641648633426.jpg
现在我使用相同的方法从 firebase 获取图像并将其转换为 uri 然后 FIle 但输出不同
代码
Uri uri = null;
uri = Uri.parse(String.valueOf(url));
Log.d("DFGHJKFGHJ", "CREATED URI : " + uri);
File thumb_filePath = new File(uri.getPath());
Log.d("DFGHJKFGHJ", "CREATED FILEEEE" + thumb_filePath);
正在创建 URI,但文件的输出是
02-23 13:50:48.326 11130-11130/com.appmaster.akash.messageplus D/DFGHJKFGHJ: CREATED FILEEEE/v0/b/messageplus-cd647.appspot.com/o/hackerpic.jpg
因此,下一个功能也不起作用。所以任何人都可以帮我获得像第一个firebase图像一样的输出吗?
解决方案
从 firebase 存储下载图像并保存在本地:
private void downloadImgFromFStorageToLocalFile(StorageReference fileRef) {
if (fileRef != null) {
progressDialog.setTitle("Downloading...");
progressDialog.setMessage(null);
progressDialog.show();
try {
final File localFile = File.createTempFile("images", "jpg");
fileRef.getFile(localFile).addOnSuccessListener(new
OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
@Override
public void onSuccess(FileDownloadTask.TaskSnapshot
taskSnapshot) {
Bitmap bmp =
BitmapFactory.decodeFile(localFile.getAbsolutePath());
imgViewProfile.setImageBitmap(bmp);
progressDialog.dismiss();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
progressDialog.dismiss();
Toast.makeText(MainActivity.this, exception.getMessage(),
Toast.LENGTH_LONG).show();
}
}).addOnProgressListener(new
OnProgressListener<FileDownloadTask.TaskSnapshot>() {
@Override
public void onProgress(FileDownloadTask.TaskSnapshot
taskSnapshot) {
// progress percentage
double progress = (100.0 *
taskSnapshot.getBytesTransferred()) /
taskSnapshot.getTotalByteCount();
// percentage in progress dialog
progressDialog.setMessage("Downloaded " + ((int) progress)
+ "%...");
}
});
} catch (IOException e) {
e.printStackTrace();
}
} else {
Toast.makeText(MainActivity.this, "File ref is null",
Toast.LENGTH_LONG).show();
}
}
推荐阅读
- javascript - 重构此代码的最佳方法是什么?
- cesium - 获取用户选择的基础层
- structure - 没有目录结构的压缩文件夹
- angularjs - Typescript 中的控制器继承与缩小导致错误:$injector:unpr Unknown Provider
- javascript - Firefox:添加自定义键盘快捷方式,例如使用“显示密码”打开“保存的登录”
- python-3.x - 如何使用Selenium Python提取属性图片列表的值
- c# - 行为类似于 OpenFileDialog 的 OpenDatabaseForm
- git - 如何提交两个分支的“git diff”?
- python - 除了特定的文本块外,如何将行写入新文件?
- android - 在 EditText 中间显示选择