头像图片任意截取
16lz
2021-01-25
在android联系人界面,点击添加头像后可以选择一个图像的部分区域来作为头像。
查看了一下代码,模仿着写了一段从文件中选择部分区域:
Java代码
在1.6系统上出现了选择图像界面,但是在2.1系统上程序崩溃,查看输出发现是没有权限。
试了Camera权限无效,上网搜索,原来2.1系统对这个调用进行了修改,uri不让传file:///了,只能传图库中的图片,比如此类uri:content://media/external/images/media/3,只好加了一步从图库中选取图像的步骤,在响应图库选择文件的处理函数中调用图片选取Activity,代码如下:
Java代码
当图片选取Activity返回后,将选取的内容保存:
Java代码
查看了一下代码,模仿着写了一段从文件中选择部分区域:
Java代码
- Intentintent=newIntent("com.android.camera.action.CROP");
- intent.setClassName("com.android.camera","com.android.camera.CropImage");
- Filefile=newFile(filePath);
- Uriuri=Uri.fromFile(file);
- intent.setData(uri);
- intent.putExtra("crop","true");
- intent.putExtra("aspectX",1);
- intent.putExtra("aspectY",1);
- intent.putExtra("outputX",96);
- intent.putExtra("outputY",96);
- intent.putExtra("noFaceDetection",true);
- intent.putExtra("return-data",true);
- startActivityForResult(intent,REQUEST_CROP_ICON);
在1.6系统上出现了选择图像界面,但是在2.1系统上程序崩溃,查看输出发现是没有权限。
试了Camera权限无效,上网搜索,原来2.1系统对这个调用进行了修改,uri不让传file:///了,只能传图库中的图片,比如此类uri:content://media/external/images/media/3,只好加了一步从图库中选取图像的步骤,在响应图库选择文件的处理函数中调用图片选取Activity,代码如下:
Java代码
- Intentintent=newIntent("com.android.camera.action.CROP");
- intent.setData(data.getData());//data是图库选取文件传回的参数
- intent.putExtra("crop","true");
- intent.putExtra("aspectX",1);
- intent.putExtra("aspectY",1);
- intent.putExtra("outputX",96);
- intent.putExtra("outputY",96);
- intent.putExtra("noFaceDetection",true);
- intent.putExtra("return-data",true);
- startActivityForResult(intent,REQUEST_CROP_ICON);
当图片选取Activity返回后,将选取的内容保存:
Java代码
- Bundleextras=data.getExtras();
- if(extras!=null){
- Bitmapphoto=extras.getParcelable("data");
- ByteArrayOutputStreamstream=newByteArrayOutputStream();
- photo.compress(Bitmap.CompressFormat.JPEG,75,stream);
- //将流写入文件或者直接使用
- }
更多相关文章
- 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- 判断当前应用程序处于前台还是后台 ANDROID
- 关于游戏开发的一些代码
- Android(安卓)Studio关联源代码
- Android(安卓)常用技术框架的基本使用