2015-10-10 57 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)。在那里我改变了一些源代码,现在它工作的很完美。