2015-09-18 39 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