Android 7.0拍照并保存到手机的指定目录
2018-05-16 15:57
148 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Vampire_1122/article/details/80337890
本文参考第一行代码Android第2版。实现拍照并保存到指定目录。
1、创建项目Camera,修改activity_main.xml中的代码如下:
[code]<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <!--点击拍照--> <Button android:id="@+id/take_photo" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/take_photo"/> <!--显示照片--> <ImageView android:id="@+id/show_photo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal"/> </LinearLayout>
Button控件用于点击拍照,ImageView控件用于显示拍摄的照片。
2、接下来修改MainActivity 中的代码。
[code]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中对内容提供器进行注册。
[code] <provider android:name="android.support.v4.content.FileProvider" android:authorities="com.example.camera.fileprovider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" /> </provider>
4、在res目录下新建目录xml,并创建文件file_paths.xml。
[code]<?xml version="1.0" encoding="utf-8"?> <paths xmlns:android="http://schemas.android.com/apk/res/android"> <external-path name="images" path="" /> </paths>
5、在AndroidManifest.xml中进行SD卡和相机访问权限声明,并调试运行。
[code] <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CAMERA"/>
本人调试机型 小米4c,截图就不附上了。
阅读更多相关文章推荐
- Android部分手机拍照上传返回为空处理,和拍照后图片压缩后保存到指定路径下
- Android笔记:调用摄像头拍照保存至指定目录
- Android笔记:调用摄像头拍照保存至指定目录
- Android点击图片保存到指定目录,并更新相册
- Android—将Bitmap图片保存到SD卡目录下或者指定目录
- Android调用自身相机拍照并保存拍摄的照片到手机的sd卡
- android选择系统相机拍照和系统相册,裁剪图片并保存和设置头像,适配至7.0
- Android学习(六)导出模拟器/手机联系人数据库到PC指定目录
- Android应用中调用手机摄像头拍照并保存
- android 选择本地图片并截剪图片保存到,sdcard指定目录中
- android拍照后保存原图至指定文件夹
- 将图片保存到手机的指定目录
- 如何获得android手机拍照后照片的存放目录
- Android调用系统相机拍照、裁剪,并保存到手机SD卡中,展示到界面
- Android手机拍照,相册拿取图片,压缩上传,7.0权限
- Android 拍照后保存到手机里,在相册找不到
- android 拍照,存储在指定目录下核心代码
- Android—将Bitmap图片保存到SD卡目录下或者指定目录
- android 选择本地图片并截剪图片保存到,sdcard指定目录中
- Android调用系统相机拍照、从相册中取照片,裁剪,并保存到手机SD卡中,展示到界面