本文实例讲述了AndroID编程实现摄像头临摹效果的方法。分享给大家供大家参考,具体如下:
这篇文章结合本人的开发实例,介绍如何实现摄像头临摹效果,即将摄像头拍摄的画面作为临摹的物体投射到画纸上,用户可以在画纸上继续作画,效果如图1.
主要可以分成四步,第一步在AndroIDManifest.xml文件里添加对摄像机的使用许可。
<uses-permissionandroID:name="androID.permission.CAMERA"/>
第二步在布局文件里使用framelayout,这样可以实现两个vIEw叠在一起的效果,要保证两个vIEw的大小和位置相同。
<FrameLayout androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent"> <SurfaceVIEw androID:ID="@+ID/SurfaceVIEw" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent"/> <com.example.artist.PaintVIEw androID:ID="@+ID/PaintVIEw" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent"/></FrameLayout>
其中的surfacevIEw用来动态显示摄像机当前拍摄的画面,第三步需要打开摄像机并进行相关配置,然后开启预览。
mSurfaceVIEw = (SurfaceVIEw)this.findVIEwByID(R.ID.sfVIEw);mSurfaceHolder = mSurfaceVIEw.getHolder();mSurfaceHolder.addCallback(SimplePaintActivity.this);mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);mCamera = Camera.open();Camera.Parameters parameters = mCamera.getParameters();parameters.setPictureFormat(PixelFormat.JPEG);parameters.setPrevIEwSize(dm.wIDthPixels,dm.heightPixels);parameters.setPictureSize(dm.wIDthPixels,dm.heightPixels);mCamera.setParameters(parameters);try { mCamera.setPrevIEwdisplay(mSurfaceHolder);} catch (IOException e) { // Todo auto-generated catch block e.printstacktrace();}mCamera.startPrevIEw();
第四步需要改变com.example.artist.PaintVIEw
的背景透明度,PaintVIEw是本人自己实现的一个vIEw,在ontouchEvent函数和onDraw函数里分别进行了触摸响应和绘画功能,是用来响应用户画画的vIEw,设置背景半透明的语句如下。
mBkcolor = color.argb(100,255,255);canvas.drawcolor(mBkcolor);
这样,摄像头临摹效果就实现了,大功告成!
更多关于AndroID相关内容感兴趣的读者可查看本站专题:《Android拍照与图片处理技巧总结》、《Android图形与图像处理技巧总结》、《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》
希望本文所述对大家AndroID程序设计有所帮助。
总结以上是内存溢出为你收集整理的Android编程实现摄像头临摹效果的方法全部内容,希望文章能够帮你解决Android编程实现摄像头临摹效果的方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)