Android开发:巧用延迟实现欢迎界面 及 摄像头预览后绘制背景标示(如坐标系、矩形框)
来源:互联网 发布:网络偶像 ftp 编辑:程序博客网 时间:2024/05/16 14:24
很多应用程序,打开后展示欢迎界面 约0.5秒,然后跳转到主界面,均是利用延迟实现的。http://blog.csdn.net/yanzi1225627/article/details/7934710这里介绍了在摄像头预览的同时,背景画一个矩形框或者坐标系,原来的方法是点击预览按钮时画的。现在想一打开应用程序就自动预览,同时画出十字标示。即原先由按钮监听来实现预览,改为在surfaceCreated函数里就进行预览。在MainActivity里定义一个SurfaceCallback类。如下所示:
private final class SurfaceCallback implements Callback{ public void surfaceCreated(SurfaceHolder holder) { try{ camera = Camera.open(); Camera.Parameters parameters = camera.getParameters(); parameters.setPreviewSize(960, 540);
parameters.setPreviewFrameRate(5); parameters.setPictureSize(1280, 960); parameters.setJpegQuality(80); camera.setParameters(parameters); camera.setPreviewDisplay(holder); camera.startPreview();// }catch (Exception e) { e.printStackTrace(); } new Handler().postDelayed(new Runnable(){ public void run() { // TODO Auto-generated method stub /*画十字*/ mDraw.setVisibility(View.VISIBLE); mDraw.drawLine(); } }, 2000); } public void surfaceChanged(SurfaceHolder holder, int format, int width,int height) { } public void surfaceDestroyed(SurfaceHolder holder) { if(camera!=null){ camera.release(); camera = null; } } }
画十字的函数很简单只有两句
mDraw.setVisibility(View.VISIBLE);
mDraw.drawLine();
但这两句话放在 public void surfaceCreated(SurfaceHolder holder){ 。。。}这个函数里的camera.startPreview()之后发现不中,原因是在底层surfaceview预览画面未正常前貌似顶层的不能绘制,难道一个线程里 不能同时绘制??? 只能说原因不明,就只能用延迟了。
new Handler().postDelayed(new Runnable(){
public void run() {
// TODO Auto-generated method stub
/*画十字*/
mDraw.setVisibility(View.VISIBLE);
mDraw.drawLine();
}
}, 2000);
里面的run()函数是延迟时间到了之后,要干的事情。
如果是实现一个开机欢迎界面,run()函数里面一般可以这样写:
Intent intent = new Intent(BeginActivity.this, MainActivity.class);
BeginActivity.this.startActivity(intent);
BeginActivity.finish();
感谢Joim、高高兄弟的指点。Joim的代码写的就是牛逼啊! http://blog.csdn.net/qinde025/article/details/6828723这里对android任务延迟做了归纳,不错。 android学习 欢迎加入群:248217350
后注:这个代码加到onCreate函数更好!加到开始预览的后面,等于延长了 等待时间!
- Android开发:巧用延迟实现欢迎界面 及 摄像头预览后绘制背景标示(如坐标系、矩形框)
- Android开发 摄像头SurfaceView预览 背景带矩形框 实现(原理:双surfaceview,顶层画矩形框,底层预览视频)
- Android开发 摄像头SurfaceView预览 背景带矩形框 实现(原理:双surfaceview,顶层画矩形框,底层预览视频)
- Android摄像头:只拍摄SurfaceView预览界面特定区域内容(矩形框)---完整实现(原理:底层SurfaceView+上层绘制ImageView)
- Android摄像头:只拍摄SurfaceView预览界面特定区域内容(矩形框)---完整实现(原理:底层SurfaceView+上层绘制ImageView)
- Android摄像头:只拍摄SurfaceView预览界面特定区域内容(矩形框)---完整实现(原理:底层SurfaceView+上层绘制ImageView)
- 摄像头预览的背景带矩形框效果的实现(原理:双surfaceview,顶层画矩形框,底层预览视频)
- 只拍摄SurfaceView预览界面特定区域内容(矩形框)---完整实现(原理:底层SurfaceView+上层绘制ImageView)
- C++(11):OpenGL坐标系及绘制多个矩形
- Android Camera开发:给摄像头预览界面加个ZoomBar(附完整代码下载)
- Android Camera开发:给摄像头预览界面加个ZoomBar(附完整代码下载)
- android学习笔记---activity延迟跳转实现欢迎界面
- Android摄像头预览界面上画线
- android欢迎界面的绘制
- Android开发:SurfaceView上新建线程绘制旋转图片 及 刷新特定区域(脏矩形)
- Android 界面绘制实现
- android游戏开发(OpenGL ES绘制矩形平面)
- android 实现欢迎界面
- 线程 和 进程 的重要 区别
- it人的生活
- 设计模式之创建性模式
- SQL SERVER命令手记
- request.setAttribute()怎么用的
- Android开发:巧用延迟实现欢迎界面 及 摄像头预览后绘制背景标示(如坐标系、矩形框)
- S3C2440 外接 Nandflash
- log4j学习
- 解决浏览器碎片化,HMTL5大热成趋势
- web环境下的图像打印组件
- SQL Servel 2008 的 MSSQLSERVER服务不能启动的解决方法
- 微博feed系统的push和pull模式和时间分区拉模式架构探讨
- Android4.2 Input子系统
- 常用社交网络(SNS、人人网、新浪微博)动态新闻(feed、新鲜事、好友动态)系统浅析