`

Android开发:巧用延迟实现欢迎界面 及 摄像头预览后绘制背景标示(如坐标系、矩形框)

 
阅读更多

很多应用程序,打开后展示欢迎界面 约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

分享到:
评论

相关推荐

    Android开发摄像头SurfaceView预览 背景画图(矩形和圆形) 实现(双surfaceview,顶层画矩形框,底层预览视频)

    Android开发摄像头SurfaceView预览 背景画图(矩形和圆形) 实现(双surfaceview,顶层画矩形框,底层预览视频); UI:三个按钮 预览 摄像 图片保存,预览界面 可以显示(矩形和圆形等图画)

    Android实时预览摄像头、绘制浮层

    在Android开发中,实时预览摄像头并进行图像处理是一项常见的需求,例如用于人脸识别、滤镜效果等场景。本文将深入探讨如何使用SurfaceView来实现这一功能,并通过在每一帧上绘制浮层展示处理结果。 首先,`...

    android坐标画矩形

    7. **背景美化**: 要实现背景美化,可以使用Bitmap作为背景图片,或者在`onDraw()`方法中先用`canvas.drawColor()`填充指定颜色,再进行矩形绘制。也可以使用Shader来实现更复杂的渐变效果。 8. **保存与恢复状态**...

    android TextureVIew实现摄像头预览和拍照

    在Android开发中,TextureView是一种可以显示动态图形的视图,它可以用来实现实时的视频流,例如摄像头预览和拍照功能。本教程将详细讲解如何利用TextureView来实现这一目标,并讨论如何优化用户界面。 首先,理解...

    c#摄像头加固定大小矩形框可移动截取相片

    在C#编程环境中,开发一个应用来实现在摄像头预览图像上添加固定大小的矩形框,并且这个矩形框可以自由移动以便于截取特定区域的相片,是一项常见的需求,尤其在视频监控、人脸识别等领域。这个项目...

    Android OpenGL ES 绘制三维/空间坐标系透明

    在这个主题中,我们主要关注如何在Android平台上使用OpenGL ES绘制一个透明的三维/空间坐标系。这个过程涉及到几个关键的概念和技术。 首先,我们要理解OpenGL ES中的坐标系。OpenGL ES采用右手坐标系,其中X轴正...

    C# pictureBox 绘制矩形框

    当你需要在图像上进行图形操作,如绘制矩形框、选中并调整框的大小时,可以通过重写`pictureBox`的相关事件来实现。下面我们将深入探讨如何在`pictureBox`上绘制矩形框,并支持选中及边框拉伸功能。 首先,你需要...

    Android通过相机预览使用原生接口捕捉人脸并取框,androidstuido工程

    在Android平台上,开发一...总结来说,这个项目展示了如何利用Android原生接口实现相机预览和人脸检测,涵盖了Android相机API的使用、图像处理、坐标转换、界面绘制等多个技术点,是Android开发中的一个重要实践案例。

    CANVAS实现鼠标绘制矩形框

    基于canvas的鼠标绘制矩形框的demo,多个canvas对象下支持选中,平移,删除操作,代码用VUE实现的

    android欢迎界面简单实现

    在Android应用开发中,用户界面的设计至关重要,尤其是启动时的欢迎界面,它能给用户留下深刻的第一印象。本文将详细讲解如何实现一个简单的Android欢迎界面,以增强应用程序的用户体验。 首先,我们需要理解...

    android 摄像头 opengl 下绘制

    android 摄像头 opengl 下绘制android 摄像头 opengl 下绘制 android 摄像头 opengl 下绘制 android 摄像头 opengl 下绘制 android 摄像头 opengl 下绘制

    vue实现在图片中画矩形框,并得到图片中的对角坐标,测试可用版本

    在Vue.js框架中实现图像上绘制矩形框并获取对角坐标的功能,是常见的图像处理需求,例如在图像标注、对象检测等应用场景中。本文将详细介绍如何在Vue项目中完成这个任务。 首先,我们需要了解Vue的基本概念。Vue.js...

    Android SurfaceView 实现实时显示摄像头视频

    在Android开发中,实时显示摄像头视频是一个常见的需求,如创建相机应用、视频聊天或游戏等。`SurfaceView`是Android提供的一种用于高效显示多媒体数据的视图组件,尤其适合处理像视频流这样的实时数据。本篇文章将...

    C# 双缓冲绘制多个可编辑的矩形框

    本文将详细讲解如何使用C#实现双缓冲绘制以及如何创建多个可编辑的矩形框。 首先,我们需要理解双缓冲的概念。双缓冲技术在窗口系统中广泛使用,它涉及到两个图像缓冲区:前台缓冲区和后台缓冲区。当在后台缓冲区...

    基于python实现张正友法相机标定+绘制三位坐标系和立体矩形源码(含详细注释).zip

    基于python实现张正友法相机标定+绘制三位坐标系和立体矩形源码(含详细注释).zip基于python实现张正友法相机标定+绘制三位坐标系和立体矩形源码(含详细注释).zip基于python实现张正友法相机标定+绘制三位坐标系和...

    Qt坐标系转换(绘制逻辑坐标系)

    世界坐标系原点在视图左上角,本例子通过世界坐标转换,将坐标原点定位在视图中央,Y轴向上,X轴向右,并绘制坐标轴,基于逻辑坐标系下的绘图,可将转换关系函数取消生效,对比世界坐标系下的绘图。 重写...

    自定义相机实现矩形方框内的拍摄

    1. 绘制矩形:在预览视图上,使用`Canvas`和`Paint`对象绘制一个矩形框。你可以使用`onDraw()`方法覆盖`View`的绘制行为。 2. 视觉调整:确保矩形框与实际拍摄区域对应,可能需要根据设备的宽高比和相机的预览尺寸...

    用手指在屏幕上滑动获得一个矩形框

    在iOS开发中,实现“用手指在屏幕上滑动获得一个矩形框”的功能涉及到一系列的手势识别、图形绘制以及视图交互的知识点。这个功能主要应用于用户需要在屏幕上直观地选择或标记特定区域的情况,例如图像编辑应用中的...

    qt界面编程,画矩形框

    在Qt框架下进行界面编程时,经常会涉及到图形的绘制,比如在界面上画矩形框。这个主题“qt界面编程,画矩形框”主要涵盖了Qt的GUI编程基础,特别是利用QPainter类进行图形绘制的相关知识。QPainter是Qt提供的一种...

    QT 矩形框绘制 源代码

    本示例专注于使用QT库创建一个功能,允许用户通过鼠标绘制矩形框,并且能够拖动这些矩形,同时还可以通过键盘进行交互控制。这涉及到QT的信号与槽机制、事件处理以及图形视图框架。 首先,QT提供了一个强大的图形...

Global site tag (gtag.js) - Google Analytics