android圆形头像:相机相册加载图片到圆形头像
这是现在很多软件里面很常用的功能;
首先说下布局:布局文件非常简单,使用的是一个自定义的圆形头像;
当点击圆形头像的时候弹出一个popWindow,然后点击拍照,相册的时候调用系统的相机和系统的相册
布局文件:(circleImageView是一个自定义的控件集成ImageView)
<!-- xmlns:app="http://schemas.android.com/apk/res-auto" 这个必须写上,不然不生效app:border_color="#00000000" 去掉黑边框 --><com.circle.www.view.CircleImageViewxmlns:app="http://schemas.android.com/apk/res-auto"android:id="@+id/circleImageView"android:layout_width="100dp"android:layout_height="100dp"android:layout_centerInParent="true"app:border_color="#00000000" android:src="@drawable/g"/>
activity:调用系统相机相册:
int REQUESTCODE_CAMERA = 0;int REQUESTCODE_GALLERY = 1;int REQUESTCODE_CROP = 2;Bitmap changedImage;String newPath = null;Uri outputUri = null;// 启用系统相机protected void showCamera() {Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);startActivityForResult(intent, REQUESTCODE_CAMERA);}// 启用系统protected void showPhone() {Intent intent = new Intent(Intent.ACTION_PICK, null);intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,"image/*");startActivityForResult(intent, REQUESTCODE_GALLERY);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);// 相机回调if (requestCode == REQUESTCODE_CAMERA) {if (resultCode == RESULT_OK) {Bundle bundle = data.getExtras();changedImage = (Bitmap) bundle.get("data");circleImageView.setImageBitmap(changedImage);}}// 相册回调else if (requestCode == REQUESTCODE_GALLERY) {if (resultCode == RESULT_OK) {String path = FileUtils.getPictureSelectedPath(data, this);newPath = CacheUtils.getImagePath(this, "sendImage/"+ TypeConverter.getUUID() + ".jpg");try {Bitmap bitmap = ImageResizer.decodeSampledBitmapFromFile(path, 400, 400);FileUtils.compressAndWriteFile(bitmap, this, newPath);startPhotoZoom(this, Uri.fromFile(new File(newPath)));} catch (IOException e) {e.printStackTrace();}}}// 裁剪回调else if (requestCode == REQUESTCODE_CROP) {if (resultCode == RESULT_OK) {try {changedImage = BitmapFactory.decodeStream(getContentResolver().openInputStream(outputUri));circleImageView.setImageBitmap(changedImage);} catch (FileNotFoundException e) {e.printStackTrace();}}}}private void startPhotoZoom(Activity activity, Uri uri) {Intent intent = new Intent("com.android.camera.action.CROP");intent.setDataAndType(uri, "image/*");// 下面这个crop=true是设置在开启的Intent中设置显示的VIEW可裁剪intent.putExtra("crop", "true");// aspectX aspectY 是宽高的比例intent.putExtra("aspectX", 1);intent.putExtra("aspectY", 1);// outputX outputY 是裁剪图片宽高intent.putExtra("outputX", 100);intent.putExtra("outputY", 100);intent.putExtra("scale", true);intent.putExtra("return-data", false);intent.putExtra(MediaStore.EXTRA_OUTPUT, outputUri);intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());intent.putExtra("noFaceDetection", true);activity.startActivityForResult(intent, REQUESTCODE_CROP);}
源码下载地址:
http://download.csdn.net/detail/zheng_jiao/9508966
android圆形头像:相机相册加载图片到圆形头像相关推荐
- Android Glide加载图片成圆形
今天,简单讲解android使用glide加载图片成圆形. 这个很简单,因为之前需要在RecyclerView里加载圆形图片,所以在网上查找了资料,很简单就解决了. 1.导入依赖 implementa ...
- android glide圆形图片,Android Glide加载图片成圆形
释放双眼,带上耳机,听听看~! 今天,简单讲解android使用glide加载图片成圆形. 这个很简单,因为之前需要在RecyclerView里加载圆形图片,所以在网上查找了资料,很简单就解决了. 1 ...
- Android框架之路——Glide加载图片(结合RecyclerView、CardView)
Android框架之路--Glide加载图片 一.简介: 在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图片加载库,作者是bumptech.这个库被广泛的运用在google的开 ...
- Android 开发笔记 ListView异步加载图片
当ListView需要在线获取数据,并且列表中需要显示图片时,友好的处理方式是使用异步加载图片的方式. 这是因为LIstView中显示的内容是分为两部加载的,第一次加载文本信息(包含图片的uri地址) ...
- Android实现异步从网络加载图片列表
博文出处:http://blog.csdn.net/carterjin/article/details/7995935 有时会有在加载ListView的时候,包含用户头像或其他需要到网络获取的图 ...
- android多种方式实现异步加载图片
记得之前做安卓应用时都是在2.2以下的版本,如果在UI线程中进行耗时操作,比如http,socket等 会产生android.os.NetworkOnMainThreadException 如果异步加 ...
- android grideview 图片png透明,Android完美解决GridView异步加载图片和加载大量图片时出现Out Of Memory问题...
众所周知,我们在使用GridView或者ListView时,通常会遇到两个棘手的问题: 1.每个Item获取的数据所用的时间太长会导致程序长时间黑屏,更甚会导致程序ANR,也就是Application ...
- Android之使用Android-AQuery异步加载图片(一)
第一节:转载地址(http://www.cnblogs.com/lee0oo0/archive/2012/10/25/2738299.html) // 必须实现AQuery这个类 AQuery aq ...
- android访问服务器文件,访问服务器(加载图片)
一丶一个简单的访问服务器(访问网易新闻客户端)点击加载新闻:首页的布局文件 xmlns:tools="http://schemas.android.com/tools" andro ...
最新文章
- 为何协作机器人能够兴起?“协作机器人-激烈的市场谁能杀出重围”
- s2sh乱码一个小处理(新手按流程走)
- c语言sum出错,ACM:Sum Problem 求和问题C语言源码
- 关于Python中迭代器的作用
- 动态的添加和丢弃关键点---32
- 机房系统(五)——【Excel表导出】
- 使您的Java代码闻起来很新鲜
- 基于XMPP实现的Openfire的配置安装+Android客户端的实现
- SAP License:最近解决的一些SAP问题
- .NET Core跨平台:.NET Core项目部署到linux(Centos7)
- 哪本最具影响力的书,是每个程序员都应该读的?
- 学信网查学历和学位网查学位的基本操作
- 互联网无处不在的“推荐算法”解析
- c语言指针化简带分数,自动生成四则运算题目(C语言)
- 相机光学(十二)——面阵相机与线阵相机
- JS数字区间比较大小的写法
- Google Chrome 源码下载
- MATLAB Support Package Installer无法正常打开的问题
- 将u盘插入apple苹果系统后发现再插入window系统发现无法新建文件夹或者文件,新建new功能消失了
- matlab ezplot hod,Matlab学习笔记三:绘图
热门文章
- 不要因傲慢与偏见而拒绝基金
- 2020数字逻辑期末知识点总结
- [附源码]JSP+ssm计算机毕业设计桶装水配送管理系统h0zn3【源码、数据库、LW、部署】
- Weaning the Web off of Session Cookies Making Digest Authentication Viable
- 高通量筛选技术加速联合用药研究 | MedChemExpress
- 转 李开复微博爆谷歌公开C++编码规范 称全球最好
- a9 linux 程序下载,金山发布WPS for Linux A9下载
- 高速串口通信稳定_长虹配套珠峰5G通信装备 保障直播信号稳定高速传输
- 【C#-socket】网络通信实例(异步通信、多客户端异步通信、同步通信)
- 生活中的嵌入式,你家的电视已经周围的LED屏幕