位置: 编程技术 - 正文
推荐整理分享andorid下从相册选取/拍照选取一张相片并剪切(android下载图片并保存到本地),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:android 图片保存到相册,android 相册,android图片下载,android从相册选择图片,android从相册选择图片,android 相册,android 图片保存到相册,android 相册,内容如对您有帮助,希望把文章链接给更多的朋友!
在Android编程中,从相册选取或是拍照选取一张照片然后对其进行剪切的需求非常的多
之前的一篇文章只说到如何从相册中获取一张照片,今天就跟大家说说如何将获取到的相片进行剪切
完整源码下载
我们先说一下思路,在android系统中就自带了图片剪切的应用,所以,我们只需要将我们获取到的相片传给图片剪切应用,再将剪切好的相片返回到我们自己的界面显示就ok了
第一步,我们可以先激活系统图片或是相机来获取相片,看代码
[java] view plaincopy/* * 从相册获取 */ public void gallery(View view) { // 激活系统图库,选择一张图片 Intent intent = new Intent(Intent.ACTION_PICK); intent.setType("image/*"); // 开启一个带有返回的Activity,请求码为PHOTO_REQUEST_GALLERY startActivityForResult(intent, PHOTO_REQUEST_GALLERY); } /* * 从相机获取 */ public void camera(View view) { // 激活相机 Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); // 判断存储卡是否可以用,可用进行存储 if (hasSdcard()) { tempFile = new File(Environment.getExternalStorageDirectory(), PHOTO_FILE_NAME); // 从文件中创建uri Uri uri = Uri.fromFile(tempFile); intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); } // 开启一个带有返回的Activity,请求码为PHOTO_REQUEST_CAREMA startActivityForResult(intent, PHOTO_REQUEST_CAREMA); } 第二步,通过startActivityForResult()方法我们可以在onActivityResult()中来获取到相应的返回[java] view plaincopy@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == PHOTO_REQUEST_GALLERY) { // 从相册返回的数据 if (data != null) { // 得到图片的全路径 Uri uri = data.getData(); crop(uri); } } else if (requestCode == PHOTO_REQUEST_CAREMA) { // 从相机返回的数据 if (hasSdcard()) { crop(Uri.fromFile(tempFile)); } else { Toast.makeText(MainActivity.this, "未找到存储卡,无法存储照片!", 0).show(); } } else if (requestCode == PHOTO_REQUEST_CUT) { // 从剪切图片返回的数据 if (data != null) { Bitmap bitmap = data.getParcelableExtra("data"); this.iv_image.setImageBitmap(bitmap); } try { // 将临时文件删除 tempFile.delete(); } catch (Exception e) { e.printStackTrace(); } } super.onActivityResult(requestCode, resultCode, data); }第三步,注意到里边有一个crop()方法,顾名思义,就是用于剪切图片的
第四步,在剪切完成图片后,切图应用就会将图片通过onActivityResult()返回给我们通过Bitmap bitmap = data.getParcelableExtra("data");我们就拿到了我们想要的bitmap
接下来拿着这个bitmap你想干嘛就干嘛吧
由于上边的代码涉及到读写sdcard,所以要记得在清单文件中授权
[html] view plaincopy<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>附上几张效果图
android数据存储读取3:对象保存(对比IOS) Android下通过文件或者通过sharedPreference都可以保存对象IOS下使用NSCoder保存起来,也很方便。Android:文件保存对象(要保存的对象一定要实现序列化的接口
五十八 后记 我在软件园的那些日子里 第一部《职场的温柔》 下载地址:
Android多点触控技术实战,自由地对图片进行缩放和移动 转自:
下一篇:android数据存储读取3:对象保存(对比IOS)(android数据存储文件读写实验)
友情链接: 武汉网站建设