gpt4 book ai didi

java - 无法保存使用应用程序拍摄的图像?

转载 作者:行者123 更新时间:2023-12-01 23:58:44 26 4
gpt4 key购买 nike

我花了很多时间试图解决这个琐碎的问题,但即使在阅读了许多教程和之前提出的问题之后,似乎还是在原地踏步。我是编程新手,但希望变得更好,并相信从错误中学习是最好的方法。

有人可以帮助确定此代码的问题以及可以采取哪些措施,以便允许设备相机拍摄的照片随后保存到手机上,而不是被丢弃和预览。

提前致谢!

相关类的Java代码:

import java.io.File;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ImageView;

public class Activity_Camera extends Activity implements View.OnClickListener {

public static final int cameraData = 1;

ImageButton ib;
ImageView iv;
Intent i;
Bitmap bmp;

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.Info:

Intent i = new Intent(this, Help.class);
startActivity(i);

return true;
default:
return super.onOptionsItemSelected(item);
}
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera);
initialise();
}

private void initialise() {
iv = (ImageView) findViewById(R.id.ivPicReturn);
ib = (ImageButton) findViewById(R.id.ibTakePic);

ib.setOnClickListener(this);
}

public void onClick(View v) {
switch (v.getId()) {
case R.id.ibTakePic:
i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
//
i.putExtra(MediaStore.EXTRA_OUTPUT, getOutputMediaFileUri());
//
startActivityForResult(i, cameraData);
break;
}
}
//
private String getOutputMediaFileUri() {
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MyImages");
imagesFolder.mkdirs();
File image = new File(imagesFolder, "image.jpg");
Uri uriSavedImage = Uri.fromFile(image);
Intent imageIntent = null;
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
return null;
}
//
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
bmp = (Bitmap) extras.get("data");
iv.setImageBitmap(bmp);

}

}

}

最佳答案

因为您在 getOutputMediaFileUri 中返回 null return null;

试试这个

public void onClick(View v) {
switch (v.getId()) {
case R.id.ibTakePic:
i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
i.putExtra(MediaStore.EXTRA_OUTPUT, getOutputMediaFileUri());
startActivityForResult(i, cameraData);
break;
}
}

private Uri getOutputMediaFileUri() {
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MyImages");
imagesFolder.mkdirs();
File image = new File(imagesFolder, "image.jpg");
return Uri.fromFile(image);
}

关于java - 无法保存使用应用程序拍摄的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15238030/

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