调用系统相机像素过低

由于Android系统限制,通过相机拍摄的照片会被压缩,导致显示模糊。解决方法是在拍照时指定保存路径,然后在onActivityResult中读取本地图片并进行缩放处理,以避免内存过大并提高显示质量。
摘要由CSDN通过智能技术生成

官方文档中有说明,Android系统分配给每个应用的最大内存是16M,所以,系统为了防止应用内存占用过大,对于在应用内通过相机拍摄的图片最终返回来的结果进行了压缩,压缩后的图片变得很小,通过之前说的getData的方式只能满足比如显示个头像这样的需求,如果要显示大图,就会出现模糊的情况。

解决思路如下:

  1. 拍照时,将拍得的照片先保存在本地:

              Intent openCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);  

              startActivityForResult(openCameraIntent, TAKE_PICTURE);  

              Uri imageUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(),"image.jpg"));  
              //指定照片保存路径(SD卡),image.jpg为一个临时文件,每次拍照后这个图片都会被替换  
              openCameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);  

2、在onActivityResult方法中再将图片取出

@Override  
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
        super.onActivityResult(re

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

communal

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值