我想添加具有特定路径的文件,以便在图像中查看..工作正常
File imgFile = new File("/storage/emulated/0/DSC_0008.JPG");
if (imgFile.exists()) {
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
ImageView myImage = (ImageView) findViewById(R.id.imageView);
myImage.setImageBitmap(myBitmap);
BUT 这不是我找到我的照片的地方..如果我尝试手动打开而不是从工作室打开
任何想法如何工作......以及我如何知道我应该使用的路径来获取我的android上的任何照片
答案 0 :(得分:1)
" / storage / emulated / 0 /"文件夹并不存在。
它可能被称为"符号链接",或者,更简单地说,是对真实数据存储位置的引用。您需要在设备上找到存储它的实际物理位置。
由于它位于/storage/emulated/0/DSC_0008.JPG,因此它可能位于/ Internal Storage / DSC_0008.JPG /中。请注意,此文件夹可能只包含" DSC_0008.JPG",它们是真实文件的非常小的版本。
如果您的SD卡无法恢复,您的真实文件可能会永远消失。
正如Hiren所说,您需要一个文件浏览器来查看您的目录。如果您已经扎根,我强烈建议使用root explorer,否则ES File Explorer是个不错的选择。
private void chooserImage(){
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, 1888);
}
然后覆盖名为onActivityResult
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == getActivity().RESULT_OK && requestCode==1888){
Uri imageUri = data.getData();
String path = imageUri.getPath().toString();
File imgFile = new File(new URI(path));
//Then Here user your code
if (imgFile.exists()) {
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
ImageView myImage = (ImageView) findViewById(R.id.imageView);
myImage.setImageBitmap(myBitmap);
}
}
}
chooserImage();
即可选择文件并显示为ImageView 您还需要一个步骤:设置读取SD卡的权限。在AndroidManifest.xml中添加它
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
答案 1 :(得分:0)
根据文件名DSC_0008.JPG判断,我假设它是用相机应用程序制作的。如果是这样的话,您的文件应该在/ sdcard / DCIM / Camera /
中答案 2 :(得分:0)
试试这个
文件imgFile = getOutputFile(“myfileName”,“imagesSubFolder”);
public static File getOutputFile(String fileName, String subFolderName) {
File mediaStorageDir;
if (subFolderName == null) {
mediaStorageDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), Path.PHOTO_DIRECTORY);
} else {
mediaStorageDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), Path.PHOTO_DIRECTORY + File.separator + subFolderName);
}
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
return null;
}
} else {
try {
if (subFolderName != null) {
File noMediaFile = new File(mediaStorageDir, ".nomedia");
noMediaFile.createNewFile();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return new File(mediaStorageDir.getPath() + File.separator + fileName);
}
祝你好运