android 拍照的图片保存到系统图库
来源:互联网 发布:淘宝千牛发货流程 编辑:程序博客网 时间:2024/04/29 10:32
拍照后照片要保存到系统相册,可以通过给系统发个广播,扫描相应存放照片的文件路径,这时照片才会保存到系统相册。代码如下:
package com.example.administrator.cameratest;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.net.Uri;import android.os.Environment;import android.provider.MediaStore;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.ImageView;import java.io.File;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Locale;public class MainActivity extends AppCompatActivity { private Button camera ; private ImageView image ; private String path ; private File cameraFile ; private Uri imageUri ; private final int TAKE_PHOTO_LOCAL = 1; private static String filePath = null; /** 外置存储卡根路径 */ public static final String SEPARATOR = System.getProperty("file.separator"); public static final String EXTERNAL_STORAGE_DIRECTORY_ROOT = Environment .getExternalStorageDirectory().getAbsolutePath()+ SEPARATOR + "Test" + SEPARATOR+ "Image" + SEPARATOR ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); camera = (Button)findViewById(R.id.camera); image = (ImageView)findViewById(R.id.image); camera.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // path = getPhotoFileName(); cameraFile = createNewFile(path); imageUri = Uri.fromFile(cameraFile); //打开相机的Intent Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); intent.putExtra(MediaStore.EXTRA_OUTPUT,imageUri); startActivityForResult(intent, TAKE_PHOTO_LOCAL); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case TAKE_PHOTO_LOCAL : if(resultCode == RESULT_OK) { // 通知系统将所拍照片路径写入系统数据库 Intent intent = new Intent( Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); intent.setData(Uri.fromFile(cameraFile)); sendBroadcast(intent); Bitmap decodeFile = BitmapFactory.decodeFile(cameraFile.getAbsolutePath()); image.setImageBitmap(decodeFile); } break; } } /** * 创建文件夹 * @param path 路径 * @return */ public static File createNewFile(String path) { File file = new File(path); try { /* if (!file.getParentFile().exists()) { file.getParentFile().mkdirs(); }*/ if (!file.exists()) { file.mkdirs(); } if (file.exists()) { file.delete(); } file.createNewFile(); } catch (IOException e) { //LogUtil.e(TAG, e.getMessage()); } return file; } public static String getPhotoFileName() { String status = Environment.getExternalStorageState(); if (!status.equals(Environment.MEDIA_MOUNTED)) { //showToast(R.string.camera_error_no_sdcard); } else { try { filePath = EXTERNAL_STORAGE_DIRECTORY_ROOT + getWorkCirlePhotoFileName(); }catch (Exception e) { } } return filePath ; } /** * 对照片命名,按时间 * @return */ public static String getWorkCirlePhotoFileName() { Date date = new Date(System.currentTimeMillis()); SimpleDateFormat dateFormat = new SimpleDateFormat( "'IMG'_yyyy-MM-dd-HH-mm-ss", Locale.CHINA); return dateFormat.format(date) + ".jpg"; }}
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.CAMERA"/>
0 0
- android 拍照的图片保存到系统图库
- Android保存图片到系统图库
- Android保存图片到系统图库
- Android保存图片到系统图库
- Android保存图片到系统图库
- Android保存图片到系统图库
- Android保存图片到系统图库
- Android保存图片到系统图库
- Android保存图片到系统图库
- Android保存图片到系统图库
- Android保存图片到系统图库
- Android保存图片到系统图库
- Android保存图片到系统图库
- Android保存图片到系统图库
- Android保存图片到系统图库
- Android保存图片到系统图库
- Android保存图片到系统图库
- Android保存图片到系统图库
- D Pairs(FFT)
- poj2653——Pick-up sticks(判断线段是否相交)
- OpenCV学习笔记(四)插值性能对比(resize)
- 0007算法笔记——【分治法】最接近点对问题
- 机器学习中的算法(1)-决策树模型组合之随机森林与GBDT
- android 拍照的图片保存到系统图库
- Python进行数据的多表去重示例
- 贪心 最大整数(源自NOIP1998连接多位数)
- 详解JavaScript继承
- 链表
- Android中Activity运行时屏幕方向与显示方式详解
- PAT 1065
- faster rcnn过拟合探索
- PRML读书笔记(一)