Android(安卓)7.0拍照后保存到手机的指定目录并返回显示
16lz
2021-01-26
本文参考第一行代码Android第2版。实现拍照并保存到指定目录。
1、创建项目Camera,修改activity_main.xml中的代码如下:
<?xml version="1.0" encoding="utf-8"?>
Button控件用于点击拍照,ImageView控件用于显示拍摄的照片。
2、接下来修改MainActivity 中的代码。
public class MainActivity extends AppCompatActivity { public static final int TAKE_PHOTO = 1; private ImageView picture; private Uri imageUri; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button takePhoto = (Button) findViewById(R.id.take_photo); picture = (ImageView) findViewById(R.id.show_photo); takePhoto.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {//创建File对象,用于保存拍摄的照片 File outputImage = new File(Environment.getExternalStorageDirectory(), "/DCIM/Camera/"+System.currentTimeMillis() + ".jpg"); if (!outputImage.getParentFile().exists()){ outputImage.getParentFile().mkdirs(); } if (Build.VERSION.SDK_INT >= 24) { imageUri = FileProvider.getUriForFile(MainActivity.this, "com.example.camera.fileprovider", outputImage); } else { imageUri = Uri.fromFile(outputImage); } Intent intent = new Intent(); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); startActivityForResult(intent, TAKE_PHOTO); } }); } @Override protected void onActivityResult(int requestCode,int resultCode,Intent data){ switch (requestCode){ case TAKE_PHOTO: if (resultCode == RESULT_OK){ try {//显示照片 Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(imageUri)); picture.setImageBitmap(bitmap); } catch (FileNotFoundException e) { e.printStackTrace(); } } break; default: break; } }}
这里将拍摄的保存路径设置为:“/DCIM/Camera/”。
3、在AndroidManifest.xml中对内容提供器进行注册。
4、在res目录下新建目录xml,并创建文件file_paths.xml。
<?xml version="1.0" encoding="utf-8"?>
5、在AndroidManifest.xml中进行SD卡和相机访问权限声明,并调试运行。
本人调试机型 小米4c,截图就不附上了。
欢迎访问本人博客:https://blog.kangaroohy.top
更多相关文章
- android拍照显示缩略图
- Android布局管理器-使用FrameLayout帧布局管理器显示层叠的正方
- 魔方动态壁纸android源码下载
- Android录像和拍照功能实例
- Android开发之自定义相机设定照片和预览参数问题
- Android(安卓)7.0及以上调用系统相机拍照、访问相册问题
- 调用android系统相机拍照并保存图片
- android CheckBox RadioButton 照片和文字的间距问题
- Android(安卓)7.0拍照出现android.os.FileUriExposedException异