2016-11-04 82 views
0

我的应用程序:拍照并将它们存储在外部存储器的文件夹中。当我从应用程序外部进入文件夹时,我发现照片已经注册,但是当我从应用程序进入文件夹时没有任何内容显示。错误E/BitmapFactory:无法解码流:java.io.FileNotFoundException ::打开失败:ENOENT(没有这样的文件或目录)

CameraActivity.java:

public class CameraActivity extends Activity { 

    Button button ; 
    ImageView imageView ; 
    Button button2 ; 
    static final int CAM_REQUEST = 1 ; 
    File[] f ; 
    int cpt; 
    File folder = new File("/sdcard/Camera_app"); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_camera); 
     button = (Button) findViewById(R.id.CameraButton); 
     imageView = (ImageView) findViewById(R.id.imageView); 
     button2 = (Button) findViewById(R.id.dossier); 
     f = folder.listFiles(); 
     try {cpt = f.length ;} catch (NullPointerException e){cpt=1;} 

     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent Camera_intenet = new 
       Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
       File file = getFile(); 
       Camera_intenet.putExtra(MediaStore.EXTRA_OUTPUT, 
       Uri.fromFile(file)); 
       startActivityForResult(Camera_intenet, CAM_REQUEST);} 
       }); 
     button2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent acces_intent = new Intent(Intent.ACTION_PICK); 
       File pictures =  Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); 
       String[] listOfPictures = pictures.list(); 
       Uri uri = null ; 
       ArrayList<Uri> arrayList = new ArrayList<>(); 
       for (String picture : listOfPictures) 
       { 
       uri = Uri.parse("file://"+pictures.toString()+"/"+picture); 
        arrayList.add(uri);} 
         acces_intent.setType("image/*"); 
        acces_intent.putExtra(acces_intent.EXTRA_STREAM, arrayList); 
       startActivityForResult(acces_intent, 1); 
      } 
     });} 

    private File getFile() 
    { 
     if(!folder.exists()) 
     {folder.mkdir();} 
     File image_file = new File(folder,"Cam_image"+cpt+".jpg"); 
     return image_file ; 
     } 
     @Override 
     protected void onActivityResult(int requestCode, int resultCode, Intent  data) { 
     String path = "/sdcard/Camera_app/Cam_image"+cpt+".jpg"; 
     cpt++; 

     imageView.setImageDrawable(Drawable.createFromPath(path)); 

回答

0

你添加的权限<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>到AndroidManifest?

相关问题