Android 拍照功能详解

本文详细介绍了Android中实现拍照功能的步骤,包括简单的拍照、保存完整图片以及图片压缩。在简单拍照中,讨论了权限注册、使用Camera App和处理缩略图。保存完整图片涉及文件写入权限、创建文件目录及FileProvider配置。最后,提到了图片压缩的必要性和方法,并指出如何使拍照图片可供其他应用访问。
摘要由CSDN通过智能技术生成

Android拍照功能相信都不陌生。这篇文章总结下Android拍照功能的具体知识。

这里写图片描述


分两种场景:

  • 场景一,拍照然后显示照片在页面;
  • 场景二,拍照然后将照片以文件方式存储。

简单的拍照功能

原理:调用系统的Camera应用生成一张照片

1.要求系统支持拍照功能
<manifest ... >
    <uses-feature android:name="android.hardware.camera"
                  android:required="true" />
    ...
</manifest>

在AndroidManifest.xml中注册相机权限,这样在支持拍照功能的手机上允许安装应用。如果手机系统不支持拍照功能,则不允许安装应用程序。

2.使用Camera App拍照
static final int REQUEST_IMAGE_CAPTURE = 1;

private void dispatchTakePictureIntent() {
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
        startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
    }
}

方法中用到一个resolveActivity(),该方法返回intent可以操作的第一个Activity。使用该方法可以防止Intent启动过程出现空指针异常

3.处理缩略图

Camera应用程序将照片作为小的位图发送到onActivityResult()的Intent中,key值为data。

 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if(requestCode == REQUEST_IMAGE_CAPTURE){
            Bundle bundle = data.getExtras();
            Bitmap bitmap = (Bitmap) bundle.get("data");
            mImageView.setImageBitmap(bitmap);
        }
    }

上面介绍了使用Android系统的Camera应用生成一个缩略图,如果我们希望获取完整的拍照图片,我们需要以File的形式来存储拍摄照片。

保存完整的拍照图片

保存拍照图片为完整的文件,关键是得到图片的Uri,然后用Intent调起拍照的时候将文件的Uri放入MediaStore.EX

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值