标签:surfaceview
本篇文章实现的水印相机,类似于qq空间中的水印相机功能,因之前看过一个demo上实现了一个简陋的水印相机功能,觉得挺有意思,就在此基础上进行了修改,优化和完善,并增加了部分功能,使之更接近于qq水印相机功能。
支持功能:
1.前后置摄像头切换;
2.拍照对焦及点击屏幕对焦(前提是手机支持对焦功能);
3.相机画面会根据相机支持的分辨率调整,不会出现画面拉伸变形的情况;
4.支持修改水印中的心情短语等;
上图:
其中的水印其实就是Viewpaper中添加了n个自定义view,通过帧布局覆盖在了SurfaceView上,保存图片其实就相当于截屏了,主要代码如下:
view.setDrawingCacheEnabled(true); view.buildDrawingCache(); Bitmap bitmap = view.getDrawingCache(); int width=view.getWidth(); int height=view.getHeight(); Bitmap b = Bitmap.createBitmap(bitmap, 0, 0, width, height); view.destroyDrawingCache();View即拍完照后的显示拍照结果的Activity中的图片位置的父控件:
<RelativeLayout android:id="@+id/rl_water" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_above="@id/ll_buttom" android:layout_below="@id/ll_title" > <ImageView android:id="@+id/water_photo" android:layout_width="match_parent" android:layout_height="match_parent" android:contentDescription="@string/app_name" android:scaleType="centerCrop" /> <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_marginBottom="10dp" /> </RelativeLayout>
本文中实现了自定义心情文字,其他的比如所在城市(可通过定位实现),姓名等等都可以用类似的方法实现,这个大家有兴趣的话可以自己实现了,如果项目有类似需求,就可以直接用进项目了,当然各种机型的适配问题还需自己去考虑!
源码地址:http://download.csdn.net/detail/baiyuliang2013/8492231
标签:surfaceview
原文地址:http://blog.csdn.net/baiyuliang2013/article/details/44200717