首页 » 排名链接 » 安卓原生开发_Android中调用摄像头拍照_并剪裁图片(调用剪裁拍照程序摄像头)

安卓原生开发_Android中调用摄像头拍照_并剪裁图片(调用剪裁拍照程序摄像头)

admin 2024-11-26 15:12:32 0

扫一扫用手机浏览

文章目录 [+]

写一个按钮,点击事件,然后:1.调用代码:

openCamera(this);

2.粘贴以下代码实现拍照

安卓原生开发_Android中调用摄像头拍照_并剪裁图片(调用剪裁拍照程序摄像头) 排名链接
(图片来自网络侵删)

public void openCamera(Activity activity) { //獲取系統版本 int currentapiVersion = android.os.Build.VERSION.SDK_INT; // 激活相机 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); // 判断存储卡是否可以用,可用进行存储 if (hasSdcard()) { SimpleDateFormat timeStampFormat = new SimpleDateFormat( "yyyy_MM_dd_HH_mm_ss"); String filename = timeStampFormat.format(new Date()); tempFile = new File(Environment.getExternalStorageDirectory(), filename + ".jpg"); if (currentapiVersion < 24) { // 从文件中创建uri imageUri = Uri.fromFile(tempFile); intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); } else { //兼容android7.0 使用共享文件的形式 ContentValues contentValues = new ContentValues(1); contentValues.put(MediaStore.Images.Media.DATA, tempFile.getAbsolutePath()); //检查是否有存储权限,以免崩溃 if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { //申请WRITE_EXTERNAL_STORAGE权限 Toast.makeText(this,"请开启存储权限",Toast.LENGTH_SHORT).show(); return; } imageUri = activity.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues); intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); } } // 开启一个带有返回值的Activity,请求码为PHOTO_REQUEST_CAREMA activity.startActivityForResult(intent, PHOTO_REQUEST_CAREMA); } / 判断sdcard是否被挂载 / public static boolean hasSdcard() { return Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case PHOTO_REQUEST_CAREMA: if (resultCode == RESULT_OK) { Intent intent = new Intent("com.android.camera.action.CROP"); intent.setDataAndType(imageUri, "image/"); intent.putExtra("scale", true); intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); startActivityForResult(intent, CROP_PHOTO); // 启动裁剪程序 } break; case CROP_PHOTO: if (resultCode == RESULT_OK) { try { Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver() .openInputStream(imageUri)); picture.setImageBitmap(bitmap); } catch (FileNotFoundException e) { e.printStackTrace(); } } break; } }

相关文章

软件开发(他们的程序批发价格开发)

生鲜批发的小程序,我是在重庆做软件开发的杨老师。客户是做生鲜批发配送的,主要他们主要想实现三个需求。第一个就是每天销售数据的统一,...

排名链接 2024-12-17 阅读747 评论0