如何限制从 IMAGE_CAPTURE Intent 获取的图片大小
我用来
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(getSomePath()+"temp.jpg")));
//intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
startActivityForResult(intent, 0);
获取图片,保存的图片返回为全尺寸。
但我想要一张有限的图片,比如 800*640,因为在不同的设备上我会得到不同的尺寸,而且我不需要那么大的图片。
我注意到 MediaStore 中有一个 EXTRA_SIZE_LIMIT ,但我可以不知道如何使用,应该设置什么参数?
I use
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(getSomePath()+"temp.jpg")));
//intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
startActivityForResult(intent, 0);
to get a picture and the saved picture returns as full-size.
But I want to get a limited picture, like 800*640, because on different devices I get different sizes, and I don't need that big picture.
I notice that there is a EXTRA_SIZE_LIMIT in MediaStore , but I can't find how to use it, what parameter should be set?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
回答我自己的问题。
最后我发现这是因为不同的厂商定制了他们的Rom,包括相机应用程序,所以最好的方法是不要调用默认的相机应用程序,而是我们可以编写一个使用
hardware.camera
的活动来拍照。互联网上也有很多这方面的例子。Answering my own question.
Finally I found that's because different manufacturers customize their Rom, including the Camera app, so the best way is not to call the default camera app, instead we can write a activity use
hardware.camera
to take picture. There are a lot of examples for this around the Internet too.不幸的是 EXTRA_SIZE_LIMIT 用于视频限制(以字节为单位)。
Unfortunately EXTRA_SIZE_LIMIT used for video limit in bytes.