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