Android项目开发,通常实现拍照功能最快速的方式就是直接调用系统的相机,然后启动Android拍照(当然TeachCourse也可以自己写一个拍照程序,但没团蝣逅捎必要),最后 拍照后将按照指定尺寸对图片进行裁剪,在当前界面显示裁剪后的效果,这个小功能经常使用在修改头像的应用中。
工具/原料
Android开发工具:Android Studio或Eclipse
Android测试工具:虚拟设备或测试手机
一、如何调用系统相机拍照并截图
1、调用系统相机功能,拍摄照片,并将拍摄的照片保存在指定路径,完成后在当前界面显示,执行回调方法onActivityResult(int arg0,int arg1,Intent arg2),通过arg0参数判断是否拍照返回,arg2是返回的数据
2、拍照完成,在onActivityResult()回调方法中获取拍照的结果,然后调用系统截图。宀窜褓沙截图需要设置裁剪的图片尺寸,图片保存的路径,保存图片的名称,同样完成裁剪后,系统执行回调方法onActivityResult(int arg0,int arg1,Intent arg2),通过arg0参数判断是否截图返回,arg2是返回的数据,拿到最终裁剪后的图片结果。
3、调用系统相机拍照,指定照片的保存路径;同理,调用系统截图功能,也指定裁剪后的照片保存路径,这一步获取保存在手机SDCard中的图片,最后显示在ImageView控件上,修改头像完成。
二、如何修改ImageView显示圆形头像
1、最简单的方法,自定义CircleImageView继承ImageView,重写ImageView至少两个构造方法:Circl髫潋啜缅eImageView(Context context)、CircleImageView(Context context, AttributeSet attrs)、CircleImageView(Context context, AttributeSet attrs, int defStyle),关键代码:
2、init方法定义绘制图像的参数,比如:配置绘制图片的画笔参数,配置绘制图片外边的画笔参数,获取图片的宽度和高度和计算图片的半径大小等,关键代码:
3、最后,重写onDraw(Canvas canvas)方法,开始绘制圆形头像,drawCircle()第一和第二个参数定义绘制圆形的圆形,第三个参数定义圆形的半径,第四个参数为初始化的画笔,关键代码如下:
4、在布局文件中,使用CircleImageView代替ImageView,拍照完成裁剪后,获取保存在手机SDCard中的图片,最后显示在CircleImageView控件上,修改头像完成。