您的位置:首页 > 移动开发 > Android开发

本地选择图库照片,保存在本地新建文件夹

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐