Android 相机使用 Camera



    //1.调用系统  隐式调用
    public void takeP(View view) {
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        //拍照时如果没有指定拍照保存位置  只保存缩略图
        startActivityForResult(intent,1);
    }

//    2.调用系统   设置保存路径 就会保存到指定路径的 实际大小图形
    public void takeP1(View view) {
        file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM),"111.png");
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        //会有手机适配问题   拍照的相片还没有保存好 就要开始读取 会发生崩溃
        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
        startActivityForResult(intent,2);
    }
//    3.通过保存图片地址到数据库中  再从数据库中  读取图片地址显示(推荐使用方法)
    public void takeP2(View view) {
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        ContentValues values = new ContentValues();
        values.put(MediaStore.Images.ImageColumns.DISPLAY_NAME,"heheheh.png");
        //查数据库之后返回 uri
        Uri insert = getContentResolver()
                .insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, insert);
        startActivityForResult(intent,3);
    }
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 1){
        Bitmap bitmap = (Bitmap) data.getExtras().get("data");
        image.setImageBitmap(bitmap);
        Log.i("TAG", "onActivityResult: -------kuan--" +bitmap.getWidth()+"::gao::"+bitmap.getHeight());
    }else if (requestCode == 2){
        image.setImageBitmap(BitmapFactory.decodeFile(file.getAbsolutePath()));
    }else if (requestCode == 3){
            //查询多媒体数据库表 中图片数据 找到图片数据 进行排序 返回cursor
        Cursor cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                new String[]{MediaStore.Images.ImageColumns.DATA},
                null, null, MediaStore.Images.ImageColumns.DATE_ADDED + " DESC"); //时间排序 从新到旧
        if (cursor!=null){
            if (cursor.moveToFirst()) {//第一条就是想要数据
                image.setImageBitmap(BitmapFactory.decodeFile(cursor.getString(0)));
            }

        }
        cursor.close();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值