java - 我知道如何通过按钮打开相机,但我不知道如何更改拍摄照片的位置,我该怎么做?

标签 java android xml

我的相机有一个按钮,但我不知道如何将拍摄的照片存储在其他地方。你能帮我吗?我已经为此按钮获得的代码:

  <Button style="@style/ButtonsAtHome" android:onClick="cameraButton" 
  android:textColor="#4CAF50" android:text="CAMERA" />

Java:

public void cameraButton(View view) {
    Intent openCamera = new 
Intent("android.media.action.IMAGE_CAPTURE");
    startActivity(openCamera);
    getWindow().setBackgroundDrawable(null);
}

此按钮打开相机,但它保存在默认目录中,但我不希望它保存在那里,如何更改目录,或者使图像在拍摄后显示出来,以便我可以编辑它。 (我的应用程序是照片编辑器)

最佳答案

您可以使用以下代码拍摄照片并将其存储在您的应用目录中:

打开相机

public void openCamera(View view){
        Intent openCamera = new
                Intent("android.media.action.IMAGE_CAPTURE");
        startActivityForResult(openCamera,1);
        getWindow().setBackgroundDrawable(null);

    }

在onActivityResult()中获取结果//根据自己的需要修改

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode){
            case 1:
                Bitmap photo = (Bitmap) data.getExtras().get("data");
                createDirectoryAndSaveFile(photo,"fileName");
        }
    }

将图片保存到指定文件夹

private void saveImageToFolder(Bitmap image, String fileName) {

        File directoryName = new File(Environment.getExternalStorageDirectory() + "/MyAppDirectory");

        if (!directoryName.exists()) {
            directoryName.mkdir();
        }

        File file = new File(new File("/sdcard/MyAppDirectory/"), fileName + ".JPEG");
        if (file.exists()) {
            file.delete();
        }
        try {
            FileOutputStream out = new FileOutputStream(file);
            imageToSave.compress(Bitmap.CompressFormat.JPEG, 100, out);
            out.flush();
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

添加必要的权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA"/>

关于java - 我知道如何通过按钮打开相机,但我不知道如何更改拍摄照片的位置,我该怎么做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47518414/

相关文章:

android - 解析 XML 时出错 : no element found

python - 在 Python 中使用 ElementTree 解析 XML

java - 使用 Futures 并行运行多个调用 go 生成对象

java 教程 - 未知主机异常

android - 在 qt c++ 代码中创建 android.accounts.Account 的实例

java - 安卓房间 "bad RuntimeInvisibleParameterAnnotations attribute"

android - 查看未正确绘制的外部边界

java - 将文件转换为 xml,然后将其添加到 zip

java - GlassFish 需要 Java SE 版本 6。您的 JDK 是版本 0 (Mac)

java - 从 ArrayList<String[]> 中删除重复项 - java