码迷,mamicode.com
首页 > 移动开发 > 详细

Android水印相机

时间:2015-03-11 19:46:34      阅读:1644      评论:0      收藏:0      [点我收藏+]

标签: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>

如本文中的 RelativeLayout;

本文中实现了自定义心情文字,其他的比如所在城市(可通过定位实现),姓名等等都可以用类似的方法实现,这个大家有兴趣的话可以自己实现了,如果项目有类似需求,就可以直接用进项目了,当然各种机型的适配问题还需自己去考虑!

源码地址:http://download.csdn.net/detail/baiyuliang2013/8492231


Android水印相机

标签:surfaceview

原文地址:http://blog.csdn.net/baiyuliang2013/article/details/44200717

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!