我正在创建一个应用程序,我想在其中捕获图像,然后我想将该图像作为附件发送到电子邮件中.
我正在使用android.provider.MediaStore.ACTION_IMAGE_CAPTUREintent动作打开相机,我将文件的Uri作为参数EXTRA_OUTPUT传递给图像以将图像恢复到文件中.这是完美的工作,如果我使用external storage urias作为a 我能够获取捕获的图像, EXTRA_OUTPUT但如果我使用数据文件夹uri它不工作,相机没有关闭,它的所有按钮都不工作.
这是我在外部存储目录中获取结果的代码
Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
File out = Environment.getExternalStorageDirectory();
out = new File(out, imagename);
i.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(out));
startActivityForResult(i, CAMERA_RESULT);
Run Code Online (Sandbox Code Playgroud)
此代码用于获取数据文件夹中的图像
Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
File out = getFilesDir();
out = new File(out, MyPharmacyOptions.PRESCRIPTION_IMAGE_NAME);
i.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(out));
startActivityForResult(i, CAMERA_RESULT);
Run Code Online (Sandbox Code Playgroud)
我知道第三个应用程序无法访问数据文件夹,因此可能会导致问题,因此我创建了一个内容提供程序来共享该文件.
这是我的内容提供课程
public class MyContentProvider extends ContentProvider {
private static final String Tag = RingtonContentProvider.class.getName();
public static final Uri CONTENT_URI = Uri
.parse("content://x.y.z/");
private static final HashMap<String, …Run Code Online (Sandbox Code Playgroud) 我有一个关于如何使用相机意图(或相机API)拍摄图像的问题,然后将图像带入imageView,以便在我的应用程序中显示.这就是我到目前为止所拥有的.
我设置了一个按钮
Button btnPicture = (Button) findViewById(R.id.btn_picture);
btnPicture.setOnClickListener(this);
Run Code Online (Sandbox Code Playgroud)
我设置了一个Camera方法
private void Camera() {
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, TAKE_PICTURE_CODE);
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(intent, REQUEST_CODE);
}
Run Code Online (Sandbox Code Playgroud)
这就是我迷失的地方.我正在尝试处理我拍摄的图像.
private void processImage(Intent intent) {
setContentView(R.layout.imagelayout);
ImageView imageView = (ImageView)findViewById(R.id.image_view);
cameraBitmap = (Bitmap)intent.getExtras().get("data");
imageView.setImageBitmap(cameraBitmap);
}
Run Code Online (Sandbox Code Playgroud)
我的目的是显示你在image_view中拍摄的图像.我没有收到错误,没有任何反应.当我拍照时,我被要求拍摄另一张照片,或者在我使用设备后退按钮后,应用程序强制关闭.似乎我完全退出了我的应用程序,返回是一个大问题.有什么建议?我错过了什么?
是的,这是我的onActivityResult
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(TAKE_PICTURE_CODE == requestCode) {
Bundle extras = data.getExtras();
if (extras.containsKey("data")) {
Bitmap bmp = (Bitmap) extras.get("data");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] …Run Code Online (Sandbox Code Playgroud)