gpt4 book ai didi

Android:保存用户用相机拍摄的照片

转载 作者:太空狗 更新时间:2023-10-29 13:35:11 24 4
gpt4 key购买 nike

我正在尝试学习如何在我的 Android 应用程序中使用相机。我目前有一个带有叠加按钮的工作预览。我已将其设置为成功拍照,但是当我尝试将照片保存到 SD 卡时,它无法正常工作。它总是返回“保存期间出错”。

我知道这不是我的 SD 卡,而且我之前在另一个应用程序中使用了几乎完全相同的代码来保存位图,并且成功运行。

我也知道它正在成功拍摄照片,因为我通过将照片放入 Activity 中的 ImageView 来测试它。

我不确定为什么这不起作用。

Button takePhoto = (Button)findViewById(R.id.takephoto);
takePhoto.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {



mCamera.takePicture(shutterCallback, rawCallback,
jpegCallback);




}
});




}


ShutterCallback shutterCallback = new ShutterCallback() {
public void onShutter() {

}
};

/** Handles data for raw picture */
PictureCallback rawCallback = new PictureCallback() {
public void onPictureTaken(byte[] arg0, Camera camera) {



}
};

/** Handles data for jpeg picture */
PictureCallback jpegCallback = new PictureCallback() {
public void onPictureTaken(byte[] arg0, Camera camera) {

Bitmap photo = BitmapFactory.decodeByteArray(arg0, 0, arg0.length);

tempSavePhoto(photo);

switchToPolaroidView();

}
};



public void tempSavePhoto(Bitmap photo){

File root = new File(Environment.getExternalStorageDirectory() + File.separator + "Photos");
File image = new File(root, "toSend.jpg");
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory())));

boolean success = false;

FileOutputStream outStream;
try {

outStream = new FileOutputStream(image);
photo.compress(Bitmap.CompressFormat.PNG, 100, outStream);
/* 100 to keep full quality of the image */

outStream.flush();
outStream.close();
success = true;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

if (success) {
Toast.makeText(getApplicationContext(), "Saved successfully",
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(),
"Error during image saving", Toast.LENGTH_SHORT).show();
}
}

最佳答案

将此添加到您的 list

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

这很可能是因为此应用无权保存到您的其他应用拥有的 SDCard。添加此授予权限

关于Android:保存用户用相机拍摄的照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11369537/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com