Camera Intent数据返回的位图的最大大小是多少?

时间:2016-06-01 15:33:24

标签: android android-intent bitmap camera

在我的Android示例相机应用程序中,我按如下方式启动设备的相机应用程序:

static final int REQUEST_IMAGE_CAPTURE = 1;

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);

通过Intent数据检索位图,如下所示:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent  
data)
{
   if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) 
   {
      Bundle extras = data.getExtras();
      Bitmap imageBitmap = (Bitmap) extras.get("data");
   }
}

我用2个不同尺寸的Android手机测试了这个示例应用程序 结果如下: 电话1:    相机拍摄的原始图像尺寸为2988x5312。但位图的大小是124x221 电话2:    相机拍摄的原始图像尺寸为1456x2592。但位图的大小是91x162

我的问题: 答:我只是想知道Intent返回的位图缩略图的最大大小是多少? B.他们如何计算尺寸?

感谢。

2 个答案:

答案 0 :(得分:0)

  

我只是想知道Intent返回的位图缩略图的最大大小是什么?

它会因设备和相机应用而异。您可以保证它不到1MB,因为通过onActivityResult()可以发回多少数据是有限制的。

  

他们如何计算尺寸?

因设备和相机应用程序而异。

答案 1 :(得分:0)

要获取完整尺寸的图像,您需要通过为Android创建fileProvider将文件写入EXTERNAL_STORAGE。

在清单中并添加此代码

   <provider
    android:name="android.support.v4.content.FileProvider"
    android:authorities="com.example.android.fileprovider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/file_paths"></meta-data>
   </provider>

创建file_path

   <?xml version="1.0" encoding="utf-8"?>
   <paths xmlns:android="http://schemas.android.com/apk/res/android">
      <external-path name="my_images" 
   path="Android/data/com.example.package.name/files/Pictures" />
   </paths>

您可以点击此链接 https://developer.android.com/training/camera/photobasics.html