Android水印相机

本篇文章实现的水印相机,类似于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

时间: 2025-01-02 02:06:54

Android水印相机的相关文章

android之利用surfaceView实现自定义水印相机

知识点 1.自定义相机+预览相机 2.截屏拍照加水印 3.关于不使用intent来传输图片 俗话说,有图有真相.很多人都是喜欢直接看图,不像我,比较喜欢文字多点,经常看看散文什么的陶冶一下情操. 好了,说到这里,就引出我们今天要做的这个功能,那就是水印相机.水印相机说白了,就是在拍照的图片上面加上自己想要的各种信息,包括文字,图片或者其它你想要的信息. 在这里,我自己定义了一个类WaterCameraActivity,是自定义的相机的,然后还有一个类ViewPhoto,是用来查看你拍照后的图片的

Android自定义相机超详细讲解

Android自定义相机超详细讲解 转载请标明出处: http://blog.csdn.net/vinicolor/article/details/49642861: 由于网上关于Android自定义相机的文章写得不是太详细,Google官方的文档又说得不太容易理解,所以今天我来详细讲解一下Android自定义相机. 这篇文章主要写给一些刚刚接触Android的那些看官方API困难以及不太了解Android机制的同学们,所以熟练开发者可以绕道了. 最近在使用Camera类的时候发现居然被弃用了,

Android中相机和相册使用分析

Android中相机和相册使用分析 欢迎转载,但请尊重原创(文章来自不易,转载请标明转载出处,谢谢) 在手机应用程序中,使用自带的相机拍照以及相册选择喜欢的图片是最常见不过的用户需求,那么怎么合理使用相机和相册来选择照片是重要的,下面就以项目中实际需求为例进行说明,这里实现的功能如下: 1 使用相机和相册选择图片,并裁剪较小图片(常用于剪裁小图) 2 使用相机和相册选择图片,并裁剪较大图片(常用于裁剪大图) 具体的实现功能清楚了,那么就一一进行说明,具体如下(这里不会罗列怎么上传图片到服务端,只

Android调用相机拍照获取原始照片

Android调用相机拍照,获取原始照片的解决方案如下:注意要有读取文件的权限,需要添加如下的权限:<uses-permission android:name="android.permission.CAMERA" />按钮点击事件: public void click(View view) { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//相机捕捉图片的意图 intent.putExtra(Me

Android下相机的调用

Android下相机的调用 Android下相机的调用分别为调用系统相机和Building a Camera App两种用法: 一.调用系统相机 1.MainActivity.java文件 1 package com.example.takephoto; 2 3 import java.io.File; 4 5 import android.net.Uri; 6 import android.os.Bundle; 7 import android.provider.MediaStore; 8 i

调用android系统相机拍照并保存图片

android调用系统相机拍照并保存图片 调用系统相机: //在某个事件中添加如下代码即可,不是说单击事件都不会写啊startActivityForResult(new Intent(MediaStore.ACTION_IMAGE_CAPTURE),1); 解释:其中参数MediaStore.ACTION_IMAGE_CAPTURE是调用系统相机用的,而后面的1则是请求的Activity的标志,用来处理返回结果的 可以理解为:给系统相机的Activity添加一个请求标志,在用onActivity

Android Camera 相机程序编写

Android Camera 相机程序编写 要自己写一个相机应用直接使用相机硬件,首先应用需要一个权限设置,在AndroidManifest.xml中加上使用设备相机的权限: <uses-permission android:name="android.permission.CAMERA" /> 为你的应用创建自定义的相机,一般步骤如下: 1.检测相机硬件并获取访问 2.建立一个Preview类:需要一个相机预览的类,继承 SurfaceView 类,并实现SurfaceH

android 自定义相机画面倒立解决方案

有部分手机的影像是倒立的,如何解决这个问题呢? 请看下面 public static void setCameraDisplayOrientation(Activity activity, int cameraId, android.hardware.Camera camera) { android.hardware.Camera.CameraInfo info = new android.hardware.Camera.CameraInfo(); android.hardware.Camera

android之相机开发

http://blog.csdn.net/jason0539/article/details/10125017 android之相机开发 分类: android 基础知识2013-08-20 22:32 9774人阅读 评论(2) 收藏 举报 Android 在android中应用相机功能,一般有两种:一种是直接调用系统相机,一种自己写的相机.我将分别演示两种方式的使用: 第一种:是使用Intent跳转到系统相机,action为:android.media.action.STILL_IMAGE_