2015-10-10 59 views
1

我正在使用SquareCamera庫(https://github.com/boxme/SquareCamera)拍攝方形圖片。我面臨的問題是SquareCamera正在創建自己的文件夾,其中所拍攝的照片正在存儲。我想要這些照片存儲在我自己的文件夾中。我不知道如何實現這一點。我對android非常陌生。下面是代碼,而不是默認相機,我打電話給自己的班級。如何更改SquareCamera庫的目錄?

public void onLaunchCamera(View view) { 
    // create Intent to take a picture and return control to the calling application 
    Intent intent = new Intent(this,CameraActivity.class); 
    // Start the image capture intent to take photo 
    startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); 

這是onActivityResult方法

public void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) { 
     if (resultCode == RESULT_OK) { 
      Uri takenPhotoUri = data.getData(); 
      Bitmap takenImage = BitmapFactory.decodeFile(takenPhotoUri.getPath()); 
      imageView.setImageBitmap(takenImage); 

我想過這個保存位圖到我自己的文件夾,但我想不出如何刪除SquareCamera的創建的目錄。

+0

似乎你想訪問外部存儲。如果我不明白請解釋。 – John

+0

訪問外部存儲不是問題。請參閱我正在使用此庫來拍攝正方形圖片,但是此庫正在將其自己的文件夾名稱創建爲我手機中的SquareCamera,我完全不希望發生這種情況。我希望自己創建的目錄可以存儲這些照片。問題只是我猜的文件夾名稱。 –

+0

有關如何刪除外部存儲中的文件夾,請參閱http://stackoverflow.com/a/26765884/5353361。您將需要用戶的明確同意帖子KK – John

回答

0

我在Android的牙齒有點長,我不是100%與新的Uri文件訪問方法從KitKat強制執行。對於傳統文件訪問,您可以使用專用可寫文件。

private static final File OUTPUT_DIR = Environment.getExternalStorageDirectory(); 
FileOutputStream fos; 

void yourMethodBeginsHere() { 
    String outputPath = new File(OUTPUT_DIR, "test.png").toString(); 
    try { 
     fos = new FileOutputStream(outputPath, false); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } 
    //Work with file 
} 

如果你需要一個真正的外部文件路徑請參考現有的https://stackoverflow.com/a/26765884/5353361優秀的答案與權限的新Uri爲基礎的系統和集成文件瀏覽器完全交易。

+0

我可以使用文件可寫方法將位圖保存到我自己的文件夾中。這不會是一個問題。這裏的問題是如何限制這個庫來創建它自己的文件夾並在那裏保存圖像。這個問題的解決方法是什麼? –

+0

也許你可以試試devlopers? – John

+0

是啊,似乎是唯一的選擇。雖然謝謝你的幫助:) –

1

所以我找到了解決方案。我在我的應用程序中添加了該庫作爲模塊。參考(https://www.youtube.com/watch?v=1MyBO9z7ojk)。在那裏我改變了一些源代碼,現在它工作的很完美。