标签: android-camera-intent

Android相机意图 - 内存不足错误和旋转错误

我正在创建一个Android应用程序,利用相机拍照,然后根据用户输入将它们发送到服务器.我目前在相机意图方面遇到了一些问题.我的主要问题是:

  1. 获取与拍摄位置相比似乎旋转的照片.

  2. 当我尝试修复此旋转时,我得到一个OutOfMemoryError

所以主要是我需要确保图片的方向不会改变,并且我没有得到OutOfMemoryError.

这是使用相机Intent拍摄照片的功能.

private void dispatchTakePictureIntent(int actionCode) {
        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        File f = new File(Environment.getExternalStorageDirectory(),"/ServerApp/test.jpg");
        takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
        startActivityForResult(takePictureIntent, actionCode);
    }
Run Code Online (Sandbox Code Playgroud)

此功能用于旋转图像并将其保存在该旋转处.

private void getRotate() {

        String imagePath ="";
        int rotate = 0;
        File f = null;
        try {
             f = new File(Environment.getExternalStorageDirectory(),"/ServerApp/test.jpg");
             imagePath = f.getAbsolutePath();
            File imageFile = new File(imagePath);
            ExifInterface exif = new ExifInterface(
                    imageFile.getAbsolutePath());
            int orientation = exif.getAttributeInt(
                    ExifInterface.TAG_ORIENTATION,
                    ExifInterface.ORIENTATION_NORMAL);

            switch (orientation) {
            case ExifInterface.ORIENTATION_ROTATE_270:
                rotate = 270;
                break;
            case ExifInterface.ORIENTATION_ROTATE_180:
                rotate = …
Run Code Online (Sandbox Code Playgroud)

android bitmap out-of-memory mediastore android-camera-intent

3
推荐指数
1
解决办法
4019
查看次数

Android从相机获取全尺寸图像

我正在开发一个Android应用程序,它将图像从相机或设备照片库上传到远程站点.后者我工作正常,我可以选择并上传.但是,我无法拍摄完整尺寸的图片并上传.这是我的代码:

// From onCreate
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
Run Code Online (Sandbox Code Playgroud)

我有一个方法来处理Activity结果.这两个都处理从图库和相机中选择:

public void onActivityResult(int requestCode, int resultCode, Intent data) {

  String filepath = ""; 
  Uri selectedImageUri;

  if (resultCode == RESULT_OK) {
    if (requestCode == CAMERA_PIC_REQUEST) {
      Bitmap photo = (Bitmap) data.getExtras().get("data");
      // Gets real path of image so it can be uploaded
      selectedImageUri = getImageUri(getApplicationContext(), photo);
    }
    else {
      selectedImageUri = data.getData();
    }
    // Handle the upload ...
  }
}

public Uri getImageUri(Context inContext, Bitmap inImage) {
  String path …
Run Code Online (Sandbox Code Playgroud)

android image bitmap image-processing android-camera-intent

3
推荐指数
1
解决办法
1万
查看次数

在锁定屏幕上启动相机活动

我有一个类似于 Facebook 封面提要(在锁定屏幕上显示)的活动。如您所见,Facebook Cover Feed 提供了通过向左滑动来启动相机的功能。但是,相机可以在锁屏上正常启动!

我想知道的是如何像 Facebook Cover Feed 一样在锁定屏幕上打开设备相机应用程序。

camera android lockscreen android-camera-intent

3
推荐指数
1
解决办法
841
查看次数

如何检测照片是否拍摄(相机意图)

我想发送相机意图拍摄的照片.

  • 相机工作正常
  • 我有来自mMediaUri.getPath()的路径(这是正确的)
  • 我有发送它的方法(postImage())(工作正常)

当我启动一个Intent时,相机正在显示,但方法postImage不会等到拍照.PostImage只是在启动意图后加载.

如何在拍照后加载postImage?

要么

如何检测照片是否拍摄?

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
        mMediaUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);
        if(mMediaUri == null){
          Toast.makeText(MainActivity.this, "Problem!", Toast.LENGTH_LONG).show();

        }
        else {
            takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, mMediaUri);
            startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);

            postImage("mail", mMediaUri.getPath());

        }

    }
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

android android-intent android-camera android-camera-intent

3
推荐指数
1
解决办法
2050
查看次数

Android R - ACTION_IMAGE_CAPTURE 的 startActivity 显示不同的选项可供选择

我的目标是我的应用程序支持 30 (R)。我注意到调用此方法时缺少某些应用程序可供选择:

baseActivity.startActivity(Intent(MediaStore.ACTION_IMAGE_CAPTURE))
Run Code Online (Sandbox Code Playgroud)

当定位到 29 时,此代码显示了在拍照前要选择的几个应用程序:

  • 原生相机应用
  • B612 相机应用

定位到30后,直接打开相机APP(无选项)。

我查看了 android 11 的更改,但没有看到任何特别之处。我身边有什么需要改变的吗?

感谢阅读/帮助

android android-camera-intent android-11

3
推荐指数
1
解决办法
1007
查看次数

如何在Android中检查照片是以横向还是纵向模式拍摄的?

我是Android的新手.我正在尝试使用内部的照片捕捉功能制作应用程序.问题是照片旋转不对.如果我以横向模式拍摄照片会很好,但在纵向模式下照片旋转会出错.我的问题是:我可以检查照片是否以横向/纵向模式拍摄?因为当我检查LogCat时,我可以看到名为"CameraEngine"的标签,它表示旋转:0或90.如果我能通过代码获得那种相机信息,那将会很酷.

android android-camera android-camera-intent

2
推荐指数
1
解决办法
3512
查看次数

设备锁定时如何捕获图像

我希望在屏幕锁定并且有人试图解锁时,使用Android设备的前置或后置摄像头自动捕获图像.我在Android中检查过它可以在市场上找到一些应用程序.请帮忙.

android android-camera android-camera-intent android-capture

2
推荐指数
1
解决办法
7102
查看次数

在图像裁剪上失去了很多质量

我从相机捕获图像,然后保存它做sqlite数据库.

之后,我允许用户裁剪它.整个过程质量非常差.

我在Nexus7上测试它,我知道它的前置摄像头很差,但是在裁剪应用程序打开后,图片非常小.在作物活动中它需要1/5的creen,我不知道为什么.

这会发生什么onActivityResult(拍摄拍摄的照片)

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {  
        Bitmap bitmap = (Bitmap) data.getExtras().get("data");          
        String path = Images.Media.insertImage(getActivity().getContentResolver(), bitmap, "Title", null);
        Uri imageUri = Uri.parse(path);
        if (!doCrop(imageUri)) saveNewAvatar(bitmap);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是doCrop(Uri uri)方法:

private void doCrop(final Uri imageUri) {
    Intent intent = new Intent("com.android.camera.action.CROP");
    intent.setType("image/*");

    List<ResolveInfo> list = getActivity().getPackageManager().queryIntentActivities( intent, 0 );

    int size = list.size();

    intent.setData(imageUri);

    intent.putExtra("aspectX", 1);
    intent.putExtra("aspectY", 1);
    intent.putExtra("scale", true); …
Run Code Online (Sandbox Code Playgroud)

android bitmap android-camera-intent

2
推荐指数
1
解决办法
3240
查看次数

从摄像机捕获图像并将其直接发送到服务器

我正在尝试编写一个小代码,允许我从相机拍摄后直接发送图片,这意味着从相机拍摄图片后,该图片将直接发送到服务器,而无需存储在手机或手机中sdcard,所以我编写了此代码,但我不知道它是否正确,因为实际上它向我显示了很多消息错误,但我不知道问题出在哪里,或者有人可以告诉我在哪里可以找到类似的代码,

// Upload Direct From Camera
camButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent_gallery = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        intent_gallery.putExtra( MediaStore.EXTRA_OUTPUT, SERVER_URL + "uploadFromCamera.php" );
        startActivityForResult(intent_gallery, SELECT_IMAGE);
    }
});
...

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
        if (requestCode == SELECT_IMAGE) {
            Uri selectedImageUri       = data.getData();
            String selectedImagePath   = getPath( selectedImageUri );
            String url                 = SERVER_URL + "uploadFromCamera.php";

            if ( selectedImagePath != null ) {
                //Send to server
            }
        }
    }           
} …
Run Code Online (Sandbox Code Playgroud)

camera android android-intent android-camera-intent

2
推荐指数
1
解决办法
3万
查看次数

如何裁剪矩形区域?

嗨,我正在研究Android应用程序,以使用相机预览来检测页码。收到框架后,我将使用Canvas表面视图上绘制一个矩形,并且想要裁剪该矩形区域以将其放置在位图中,所以我该怎么做?如这里所示

android canvas crop android-camera android-camera-intent

2
推荐指数
1
解决办法
5066
查看次数