2015-09-18 37 views
0

这个简单的代码让用户从库创建画廊的形象,创建一个文件夹

private void openGallery() { 
     Intent gallery = 
     new Intent(Intent.ACTION_PICK, 
     android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI); 
     startActivityForResult(gallery, PICK_IMAGE); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if (resultCode == RESULT_OK && requestCode == PICK_IMAGE) { 
     Uri imageUri = data.getData(); 
     imageView.setImageURI(imageUri); 
     } 
    } 
} 

我的问题选择一个图像:我看到很多代码或应用程序时将创建一个用户上传图片的文件夹。我应该这样做吗?以及如何使用上述代码创建文件夹

回答

2

请检查以下代码以动态创建文件夹。

String root = Environment.getExternalStorageDirectory() 
        .toString(); 
      new File(root + "/" + Constants.IMAGE_DIRECTORY_NAME + "/" 
        + Constants.SUB_DIRECTORY_NAME).mkdirs(); 

请为您选择的图库图像创建位图文件并保存到您自己创建的文件夹中。

File outputfile = new File(root + "/" 
        + Constants.IMAGE_DIRECTORY_NAME + "/" 
        + Constants.SUB_DIRECTORY_NAME + "/", "img_" 
        + dateFormatter.format(new Date()).toString() + ".jpeg"); 

      OutputStream outStream = null; 
      try {     
       outStream = new FileOutputStream(outputfile); 
       bmFrame.compress(Bitmap.CompressFormat.JPEG, 70, outStream); 

      } catch (FileNotFoundException e) { 
       e.printStackTrace(); 
       Log.e(TAG, e.toString()); 

      } finally { 
       try { 
        if (outStream != null) { 
         outStream.flush(); 
         outStream.close(); 
         bmFrame.recycle(); 
        } 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 

      } 

     } 

使用上面的代码在onActivityResult

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if (resultCode == RESULT_OK && requestCode == PICK_IMAGE) { 
     Uri imageUri = data.getData(); 
     imageView.setImageURI(imageUri); 

     Bitmap bmFrame = MediaStore.Images.Media.getBitmap(
        this.getContentResolver(), imageUri); 

     //Add above code here. 
     } 
    } 
+0

感谢您的asnwer,但为什么他们创建一个文件夹?上传一张照片时,像Instagram一样创建一个文件夹,为什么?我们可以在编码中使用它吗? – Moudiz

+0

@Moudiz我认为在上传到服务器之前,instagram会将图像保存到本地文件夹中。请检查我编辑的答案以将图像保存到本地文件夹中。 – Shailesh

+0

但为什么保存在locat文件夹中?什么目的 ?并请我喜欢你的代码,如何在onactivity结果中添加你的代码(与我的上述问题) – Moudiz