栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android-相机

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android-相机

开发学习记录

1、调用相机拍照

private fun takePhotoThumb() {
        Intent(MediaStore.ACTION_IMAGE_CAPTURE).also { takePictureIntent ->
            takePictureIntent.resolveActivity(packageManager)?.also {
                startActivityForResult(takePictureIntent, requestTakeThumbCode)
            }

        }
    }

接收返回的照片缩略图

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)

        if (resultCode == RESULT_OK) {
            when (requestCode) {
                requestTakeThumbCode -> {
                    val bitmap = data?.extras?.get("data") as Bitmap
                    img.setImageBitmap(bitmap)
                }
            }
        }
    }

此方法获取到的是拍照的缩略图

2、相机拍照,并返回照片路径

val fileProvider="com.example.myapplication.fileProvider"
private fun takePhoto() {
        Intent(MediaStore.ACTION_IMAGE_CAPTURE).also { takePhotoIntent ->
            takePhotoIntent.resolveActivity(packageManager)
                ?.also {
                    val photoFile = createImgFile()
                    photoFile?.also {
                        val uriForFile = FileProvider.getUriForFile(
                            this,
                            fileProvider,
                            it
                        )
                        takePhotoIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriForFile)
                        startActivityForResult(takePhotoIntent, requestTakePhoto)
                    }
                }
        }
    }

fileProvider 名字需要跟后面清单文件中 authorities 的值相同

createImgFile()

lateinit var currentPhotoPath: String
    private fun createImgFile(): File {
        val timeStamp = SimpleDateFormat("yyyyMMdd_HHmmss").format(Date())
        val storeDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES)
        return File.createTempFile(
            "JPEG_${timeStamp}", ".jpg", storeDir
        ).apply {
            currentPhotoPath = absolutePath
        }
    }

使用此方法可以获取拍摄的照片路径,但需要在清单文件中加入一些配置

            
        
    

注意 :android:authorities="com.example.myapplication.fileProvider" 此处value 需要换成自己的

@xml/file_paths :在目录res 下创建 xml 文件夹 ,添加 file_paths.xml文件



    

留言跟我交流(* ̄︶ ̄)

参考文档 拍照  |  Android 开发者  |  Android Developers

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/837640.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号