在我的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.他们如何计算尺寸?
感谢。
答案 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