android 拍照并压缩照片
来源:互联网 发布:解压软件怎么用 编辑:程序博客网 时间:2024/05/01 11:52
获取存储图片文件对象
public File getPhotoFile(Crime crime) { //获取存放图片文件的路径 File extrenalFilesDir = mContext.getExternalFilesDir(Environment.DIRECTORY_PICTURES); if(extrenalFilesDir == null) { return null; } //如果存在路径,那么获取File对象,为crime.getPhotoFilename()对象 return new File(extrenalFilesDir, crime.getPhotoFilename()); }
启动相机
<span style="white-space:pre"></span>mPhotoFile = getPhotoFile(crime);<span style="white-space:pre"></span>//打开相机的Intent final Intent captureImage = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); //当前存储的路径不为空并且存在能够接收当前intent的应用 boolean canTakePhoto = mPhotoFile != null && captureImage.resolveActivity(packageManager) != null; if(canTakePhoto) { //获取文件的Uri Uri uri = Uri.fromFile(mPhotoFile); //指定图片的储存位置 captureImage.putExtra(MediaStore.EXTRA_OUTPUT, uri); } mPhotoButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivityForResult(captureImage, REQUEST_PHOTO); } });
压缩图片同时将图片显示在设备上
mPhotoView = (ImageView) view.findViewById(R.id.crime_photo);if(mPhotoView == null || !mPhotoFile.exists()) { mPhotoView.setImageDrawable(null); } else { Bitmap bitmap = PictureUtils.getScaledBitmap(mPhotoFile.getPath(), getActivity()); mPhotoView.setImageBitmap(bitmap); }
PictureUtiles.getScaledBitmap()方法
//获取屏幕尺寸 public static Bitmap getScaledBitmap(String path, Activity activity) { Point size = new Point(); activity.getWindowManager().getDefaultDisplay().getSize(size); return getScaledBitmap(path, size.x, size.y); } //destWidth destHeight对比的高宽 public static Bitmap getScaledBitmap(String path, int destWidth, int destHeight) { //创建图片处理条件的对象 BitmapFactory.Options options = new BitmapFactory.Options(); //设置该属性为true,不加载图片到内存,只返回图片的宽高到options中。 options.inJustDecodeBounds = true; //加载获取图片的宽高 BitmapFactory.decodeFile(path, options); //当前图片高宽 float srcWidth = options.outWidth; float srcHeight = options.outHeight; int inSampleSize = 1; if(srcHeight > destHeight || srcWidth > destWidth) { if(srcWidth > srcHeight) { inSampleSize = Math.round(srcHeight / destHeight); } else { inSampleSize = Math.round(srcWidth / destWidth); } } //缩放比例 options = new BitmapFactory.Options(); options.inSampleSize = inSampleSize; return BitmapFactory.decodeFile(path, options); }
0 0
- android 拍照并压缩照片
- Android学习之调用系统照相机拍照并保存(照片会被压缩)
- Android拍照压缩裁剪并保存图片
- iOS 选择照片、视频、拍照并压缩视频获取压缩保存后路径的方法
- android调用照相机拍照获取照片并做简单剪裁
- android调用照相机拍照获取照片并做简单剪裁
- android调用照相机拍照获取照片并做简单剪裁
- android 实现调用相机拍照 获取照片路径并上传
- android调用照相机拍照获取照片并做简单剪裁
- Android调用相册或相机拍照选取照片并裁剪
- android调用照相机拍照获取照片并…
- android 选择图片拍照并剪切照片上传到服务器
- Android调用相册或相机拍照选取照片并裁剪
- android--调用系统相机拍照,显示并保存照片 - zhengwen
- android拍照与相册选择照片并保存本地
- Android调用相册或相机拍照选取照片并裁剪
- android 调用系统相机拍照并保存照片原图
- android 拍照和相册选取照片并裁剪获取bitmap
- CentOS笔记
- 泰课unity系列黑暗之光学习笔记1
- 详解反虚拟机技术
- Uninstall zone
- 智能设备之火情侦查智能车
- android 拍照并压缩照片
- 反素数
- SVN—SVN服务器搭建和使用
- 刘汝佳紫书练习题4-2
- HDU 5512 2015ACM-ICPC沈阳赛区现场赛D题
- 进程间通信--管道
- Chart.js说明文档 - 00
- Jquery弹出摸态框
- Oracle 11g Data Guard 使用duplicate from active database 创建物理DG