启动系统Camera拍照(Android)

本文介绍了一个简单的Android应用程序如何实现启动手机自带相机应用进行拍照,并将照片保存到指定路径的功能。文章详细展示了通过设置文件路径、启动相机应用并处理返回结果的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码功能说明:启动手机自带camera应用,拍照后回到对应应用


    private static final int TAKE_PICTURE = 1;
    private String TEMP_FILE = "";

    public String buildFileName(){
        Date now = new Date();
        SimpleDateFormat formater = new SimpleDateFormat("yyMMdd-HHmmss");

        String SDCARD = Environment.getExternalStorageDirectory() + "/";
        String basePath = SDCARD + "Pictures/";

        File dir = new File(basePath);
        dir.mkdirs();

        return basePath + formater.format(now) + ".jpg";
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        String filename = "";
        try {
            if (resultCode == Activity.RESULT_OK && requestCode == TAKE_PICTURE) {
                File file = new File(TEMP_FILE);
                if(file.exists()){
                    filename = file.getPath();
                    Toast.makeText(MainActivity.this, "图片已保存在:" + filename, Toast.LENGTH_SHORT).show();
                }
                else {
                    Toast.makeText(MainActivity.this, "图片保存失败", Toast.LENGTH_LONG).show();
                }
            }
        } catch (Exception err) {
            Log.e("Exception", err.getLocalizedMessage());
        }
    }
    /**
     * 拍照
     */
    public void doTakePicture(){
        TEMP_FILE = buildFileName();
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); //调用摄像头拍照
        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(TEMP_FILE))); //另存图片地址
        startActivityForResult(intent, TAKE_PICTURE);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值