本地选择图库照片,保存在本地新建文件夹
2016-08-11 14:40
155 查看
应公司要求 要在本地选择照片之后,保存在本地自己新建一个文件夹里面。此要求不含拍照,只有单独的选择照片选择照片
private static final int PHOTO_REQUEST_GALLERY = 2; private static final int PHOTO_REQUEST_CUT = 3; private String imageName;
//这个是名字是否用时间来命名
@SuppressLint("SimpleDateFormat") private String getNowTime() { Date date = new Date(System.currentTimeMillis()); SimpleDateFormat dateFormat = new SimpleDateFormat("MMddHHmmssSS"); return dateFormat.format(date); }
//调用选择照片
imageName = 这里可以写自己要命名的名字或者引用上面的 getNowTime()+ ".png";
Intent intent = new Intent(Intent.ACTION_PICK, null);intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");startActivityForResult(intent, PHOTO_REQUEST_GALLERY);
@Overrideprotected void onActivityResult(int requestCode, int resultCode, final Intent data) {super.onActivityResult(requestCode, resultCode, data);if (resultCode == RESULT_OK) {if (requestCode == PHOTO_REQUEST_GALLERY) {// 相册if (data != null) {// Log.e("111111","cut11111");startPhotoZoom(data.getData(), 480);// 获取图片地址}final String path = "/sdcard/cs/" + imageName;Bitmap bmp = null;bmp = BitmapFactory.decodeFile(String.valueOf(data.getData()));try {savePhotoFile(bmp,path);} catch (IOException e) {e.printStackTrace();}}}
}
//选择图片之后剪切
private void startPhotoZoom(Uri uri1, int size) {Intent intent = new Intent("com.android.camera.action.CROP");intent.setDataAndType(uri1, "image/*");// crop为true是设置在开启的intent中设置显示的view可以剪裁intent.putExtra("crop", "true");// aspectX aspectY 是宽高的比例intent.putExtra("aspectX", 2);intent.putExtra("aspectY", 1.5);// outputX,outputY 是剪裁图片的宽高intent.putExtra("outputX", size);intent.putExtra("outputY", size);intent.putExtra("return-data", false);intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File("/sdcard/cs/", imageName)));intent.putExtra("outputFormat", Bitmap.CompressFormat.PNG.toString());intent.putExtra("noFaceDetection", true); // no face detectionstartActivityForResult(intent, PHOTO_REQUEST_CUT);finish();}
//保存图片在SD卡上面
public static void savePhotoFile(Bitmap bitmap, String _file)throws IOException {BufferedOutputStream os = null;try {File file = new File(_file);// String _filePath_file.replace(File.separatorChar +// file.getName(), "");int end = _file.lastIndexOf(File.separator);String _filePath = _file.substring(0, end);File filePath = new File(_filePath);if (!filePath.exists()) {filePath.mkdirs();}file.createNewFile();os = new BufferedOutputStream(new FileOutputStream(file));bitmap.compress(Bitmap.CompressFormat.PNG, 100, os);}catch (NullPointerException e){e.printStackTrace();}finally {if (os != null) {try {os.close();} catch (IOException e) {// Log.e(TAG_ERROR, e.getMessage(), e);}}}}
/*** 加载本地图片* @param url* @return*/public static Bitmap getLoacalPhoto(String url) {try {FileInputStream fis = new FileInputStream(url);return BitmapFactory.decodeStream(fis); ///把流转化为Bitmap图片} catch (FileNotFoundException e) {e.printStackTrace();return null;}}
加载本地图片
调用
img_code 为ImageView控件
Bitmap bitmap = getLoacalBitmap("/storage/emulated/0/cs/alipay.png"); //从本地取图片img_code .setImageBitmap(bitmap); //设置Bitmap
相关文章推荐
- FLASH 调用摄像头 JS中方法触发拍照,并将照片保存到本地文件夹
- c#保存文件时候的弹出选择要保存的文件夹带新建文件夹效果的类代码
- c#保存文件时候的弹出选择要保存的文件夹带新建文件夹效果的类代码
- Java 根据url下载图片 并 保存到对应的本地的新建文件夹中
- ios 调用系统相机,图库,相册。将照片保存在相册,保存图片在本地,UIImagePickerController
- android拍照与相册选择照片并保存本地
- 安卓开发调用相机和本地图库选择照片并上传(上传retrofit实现)
- Android实现仿微信朋友圈发布动态(拍照、图库选择、照片压缩、显示、保存、缩略图、点击缩略图删除对应文件等)
- [置顶] Android实现仿微信朋友圈发布动态(拍照、图库选择、照片压缩、显示、保存、缩略图、点击缩略图删除对应文件等)附源码
- eclipse 新建项目下后.metadata\.plugins的文件夹解释和如何保存自己的特定工程设置
- Android保存Bitmap到本地图库
- java 新建文件夹保存
- 未能在指定文件夹中创建本地存储区,请选择其他位置。可以检查事件日志以了解详细信息
- loadrunner选择winsocket 通信协议,把接收到的数据包保存到本地计算机进行分析
- Delphi 选择文件夹对话框 (有新建文件夹按钮)修正版
- 长按图片保存到指定的文件夹,并且更新到图库中
- Dlephi 选择文件夹目录保存
- winform 中 将listview数据 以excel格式导出 保存在可选择的文件夹下 但文件打开的时候有问题
- Ionic系列——调用摄像头拍照和选择图库照片功能的实现
- 三星手机拍照,从图库选择照片旋转问题完美解决