SurfaceView

面试:SurfaceView相关 • UI(主线程): 调用 SurfaceView.getHolder()获得SurfaceHolder对象• UI(主线程): 调用SurfaceHolder.addCallback(callback)添加回调函数• Render线程: 调用SurfaceHolder.lockCanvas()获得Canvas对象并锁定画布• Render线程: 调用Canvas的画图函数画图。 阅读详情

XML声明的SurfaceView,从中获得一个SurfaceHolder,设置该Surface是一个“推送”类型Surface,意味着Surface本身外部维持绘图缓存区。该缓冲区由Camera类管理。“推送”类型是Camera预览所需的Surface。

SurfaceView cameraView=(CameraView)this.findViewById(R.id.CameraView);

SurfaceHolder surfaceHolder=cameraView.getHolder();

surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

活动实现SurfaceHolder.Callback,得在创建、修改及销毁该Surface时活动获得通知。实现回调

surfaceChanged(SurfaceHolder holder,int format,int w,int h),surfaceCreated(SurfaceHolder holder){} surfaceDestroyed(SurfaceHolder holder){}

告诉SurfaceHolder.addCallback(this);

try{

   camera.setPreviewDisplay(holder);

}

catch(IOEXCEption exception){

   camera.release();}

最后,启动摄像头预览。

camera.startPreview();

相应的,在surfaceDestroyed也需要该Camera对象stopPreview,确保释放的资源被清理。

surfaceDestroyed(SurfaceHolder holder)

     camera.stopPreview();

    camera.release();

1.设置Camera对象的参数

Camera.Parameters parameters=camera.getParameters();

parameters.set("some parameter","some value");

parameters.set("some parameter",some_int);

camera.setParameters(parameters);


SurfaceView的工作原理 大家在做android游戏和视频播放器的apk开发时,会经常用到SurfaceView这个类,以及它的子类VideoView,GLSurfaceView等.它与普通的View视图有本质的区别,本文就对SurfaceView的工作原理做个详细介绍. SurfaceView不与它的宿主窗口共享同一个绘图表面,它拥有自己独立的绘图表面,也就是说拥有独立的Surface本地窗口,它可以在一个独立的子线程 阅读详情

相关推荐

SurfaceView详解

SurfaceView的定义 SurfaceView是View的子类,它内嵌了一个专门用于绘制的Surface,你可以通过getHolder获取它的SurfaceHolder,并通过SurfaceHolder的getSurface方法获取这个Surface。从而控制这个Surface的格式和尺寸,Surfaceview控制这个Surface的绘制位置。surface是纵深排序(Z-ordered)...

小红威武 1575

SurfaceView预览Camera图像,SurfaceView总是位于顶层的问题

今天在公司遇到一个比较郁闷的问题: 驱动组的同事把Camera的源切换成了从DVD输入,这就意味着我们打开系统的Camera的话看到的就是DVD解码过后的画面。 同事用SurfaceView直接显示显示Camera的预览画面,确实可以看到画面。但是问题来了,无论怎么添加控件、View总是会显示在SurfaceView的下面,就连系统的SystemUI也显示在SurfaceView的下面。 接

大后生大大大的博客 2347

SurfaceView叠加展示

SurfaceView叠加展示 项目背景   最近集成网易云信的视频通讯SDK,碰到了一个问题。   画面展示用的是云信封装的SurfaceView,直接在布局中使用。结果绘制画面的时候总是出现覆盖问题。   PS:本地画面小窗展示(覆盖在远端界面之上),远端画面全屏展示。绘制远端画面的时候,本地小窗直接被覆盖。 解决方案   谷歌了一下“SurfaceV...

liangfeng093的博客 1553

surfaceView 多层显示

setZOrderOnTop(true);Zorder方法让你的surface 能够置顶显示 如果遇到多个surface 均设置这一项 则会按照你的布局层次 依次展示 setZOrderMediaOverlay(true);设置这一项 可以让你的 sufaceView 不会遮盖其他的普通的view至于如何让surfaceView 动态调整层级 还在探索当中应用场景是这样的 1. 有一个frage...

sinat_34426699的博客 2789

SurfaceView及TextureView

1、SurfaceView是什么它继承自类View,因此它本质上是一个View。但与普通View不同的是,它有自己的Surface。有自己的Surface,在WMS中有对应的WindowState,在SurfaceFlinger中有Layer。我们知道,一般的Activity包含的多个View会组成View hierachy的树形结构,只有最顶层的DecorView,也就是根结点视图,才是对WMS可

jiashuai94的博客 1423

用SurfaceView实现落花动画效果

上篇文章中可以看出子线程更新main线程创建的View,会抛出异常。SurfaceView不依赖main线程,可以直接使用自己的线程控制绘制逻辑。具体代码怎么实现了?这篇文章用SurfaceView实现落花动画效果。

知道这个有什么用? 672

什么是 SurfaceView?

Surface简介 Surface就是“表面”的意思,可以简单理解为内存中的一段绘图缓冲区。在SDK的文档中,对Surface的描述是这样的:“Handle onto a raw buffer that is being managed by the screen compositor”, 翻译成中文就是“由屏幕显示内容合成器(screen compositor)所管理的原生缓冲器的句柄”, 这句话包括下面两个意思: 通过Surface(因为Surface是句柄)就可以获得原生缓冲器以及其中的内

xj-up的博客 7418

飞行器坐标转换

本文定义的是右手直角坐标系,x−y−zx-y-zx−y−z轴分别为北-天-东。从AAA坐标系到BBB坐标系是分别绕y−z−xy-z-xy−z−x轴,即天-东-北旋转ψ−θ−γψ−θ−γ。如果AAA是惯性系,BBB是机体系,则这三个角度分别为偏航角、俯仰角、横滚角。图1 惯性系到机体系。

gongfuyd的博客 1355

SurfaceView 基础用法

Android 游戏开发框架核心组件SurfaceView

分享美好的专栏 2万+

IEC 62056协议栈深度拆解:从物理层握手到应用层AARQ,一次完整的DLMS通讯抓包分析

本文深入解析IEC 62056协议栈(DLMS/COSEM)的全流程通信机制,从物理层握手到应用层AARQ建立,提供详细的抓包分析和实战指南。涵盖RS-485配置、HDLC帧解析、OBIS编码解读等核心内容,并附有常见故障排查技巧,助力开发者高效实现电能表数据采集。

weixin_29182481的博客 312

深入解析TOM模块的PWM输出与ADC触发机制:从配置到DMA数据传输

本文深入解析了TOM模块在嵌入式系统中的核心应用,详细阐述了如何配置其PWM输出功能,并实现与ADC模块的硬件触发同步。重点介绍了通过DMA机制高效传输ADC采样数据的完整流程,涵盖时钟配置、工作模式选择、引脚映射及联调实战,为电机控制、数字电源等实时系统提供了一套硬件自动化的高效解决方案。

weixin_29227585的博客 368

SurfaceView 基本使用

SurfaceView 的基本使用 Android中提供了View进行绘图处理,View可以满足大部分的绘图需求,但是有时候,View却显得力不从心,所以Android提供了SurfaceView给Android开发者,以满足更多的绘图需求。下面就让我们一起来了解一下SurfaceView。 1. SurfaceView的作用 View是通过刷新来重绘视图,Android 系统通过发出VSYNC信号来进行屏幕的重绘,刷新的时间间隔是16ms,如果我们可以在16ms以内...

lixiong0713的博客 2万+

学习 考证 帆软 FCP-FineBI V6.0 考试经验

参加这个学习班,认识了新朋友,可能是我职业生涯中的一次重要体验,其实大家想想 IT 和 医生一样都是需要终身学习的。只是医生学习周期更长但是回报率也更高。大家觉的呢?

小 tom的博客 6225

surfaceview

​ SurfaceView是Android系统中的一种特殊的视图,提供一个嵌入在视图层次结构中的专用绘图表面,可以控制表面的格式和大小,该表面以Z顺序排列,位于持有其SurfaceView的窗口后面,SurfaceView在其窗口上挖洞以显示其表面,以便它的UI可以对用户可见。

weixin_44915162的博客 1021

silvaco(TCAD)击穿特性仿真,的不收敛问题

在silvaco仿真学习过程中,最近这段时间一直有一个很大的问题困扰着我,那就是我在仿真击穿特型曲线的过程中,在电压加到后期比较大的情况下,往往会出现仿真不收敛的情况,正常情况下器件的击穿应该在一个外加偏压上,电流出现迅速的上升,这才是击穿的定义,但是我仿真的过程中程序跑到一个较大的电压时,器件出现击穿,我观察电压电流曲线,在击穿电压(程序报告的)电流并没有出现迅速的变化,类似于下图这种形式。(2)解决方法,将初始电压调整到合适的值,这个值可能是更大的也可能是更小的,要注意多多尝试。

zm19992533002908的博客 4947

NVIDIA Jetson之交叉编译工具

参考:http://bbs.xfyun.cn/forum.php?mod=viewthread&tid=33630 用TX2做红外热成像仪的识别,厂家不提供源码,只能提供对应版本的SDK,但是需要我们自己提供交叉编译器 由于之前没有做过交叉编译相关工作,对编译工具不太了解,因此查找相关资料学习下 交叉编译知识 一般来说,针对嵌入式平台的开发有两种编译模式:原生编译和交叉编译。原生编...

ZONGXP的博客 8384

SurfaceView绘图机制

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666) 虽然前面都使用的View来进行绘图,但View绘图机制存在两个缺陷: 1、缺乏双缓冲机制 2、更新图像时,必须更新View上的整张图片,效率低。 所以在游戏绘制中推荐使用SurfaceView。它可以只对指定...

孤云博客 5094

【漏洞复现】永恒之蓝 MS17-010 远程溢出漏洞(CVE-2017-0143)

文章目录声明前言一、漏洞原理简述二、漏洞代码深层解析三、实验步骤四、漏洞补丁总结 声明 本篇文章仅用于技术研究与技术学习,切勿用于非授权下攻击行为,切记! 前言 Windows7 存在 MS17-010 永恒之蓝(远程溢出漏洞) ,该漏洞是方程式组织在其漏洞利用框架中一个针对SMB服务进行攻击的漏洞,该漏洞导致攻击者在目标系统上可以执行任意代码 一、漏洞原理简述 MS17-010漏洞出现在Windows SMB v1中的内核态函数 srv!SrvOs2FeaListToNt 在处理FEA(File Ex

李同學AI安全 9627

surfaceView

SurfaceView SurfaceView SurfaceView和View的区别: 双缓冲: 一.自定义View画图:在主线程画图 1.画布Canvas:画线/画圆/画文字/画椭圆/画弧度/画矩形/画点/画图片 2.画笔:Paint 二.自定义SurfaceView画图:在子线程画图 使用自定义的surfaceView画线 SurfaceView SurfaceView和View的区别: V...

lizhuang_666的博客 335

Agent 智能体学习指南:从入门到求职的完整路线

AI Agent 不是更长的 prompt,而是一类系统设计——模型在受控环境里观察状态、选择动作、调用工具、接收反馈。本文系统梳理 Agent 的 5 个核心概念、7 个关键模块(Goal/State/Context/Tools/Loop/Guardrails/Eval)、三条学习路线(工程落地/研究算法/求职作品)、框架选型策略(LangGraph/OpenAI Agents SDK/Pydantic AI 等场景推荐),以及可执行的 7 天最小项目计划(从概念到简历 bullet)。

program哲学 229

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【Android 你的SurfaceView休眠了吗】

SurfaceView基本定义网上有很详细的说明,这里不再进行废话啦。而我对它一个简单理解就是:可以在子线程绘制view的组件,而传统View的绘制都是在UI线程。网上看到这样一种解释觉得说的也不错:SurfaceView 就是在Window上挖一个洞,它就是显示在这个洞里,其他的View是显示在Window上,所以View可以显式在 SurfaceView之上,你也可以添加一些层在SurfaceView之上。传统View及其派生类的更新只能在UI线程,然而UI线程还同时处理其他交互逻辑。

da_caoyuan的博客 1456

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

通过surfaceView实现的虚拟摇杆控制

我们的机器人开发当中,移动端APP有一个控制的功能,实现当中,使用了一个类似于游戏手柄的界面,面对这样的界面首先肯定想到了使用"绘制"的方式搞定.那么就会使用到view或者surfaceview来实现了,而使用surfaceview能够在非UI线程上面进行,这必然是一大优势.先上图:   外部是一个背景图片,中间的渐变色圆圈是可以滑动"虚拟摇杆",控制区域是分为四个区域,如下图所示:

BlackSmith 2144

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

SurfaceView的应用

一,SurfaceView的初识        android游戏开发中常用的三种视图是:view、SurfaceView和GLSurfaceView   View:显示视图,内置画布,提供图形绘制函数、触屏事件、按键事件函数等;必须在UI主线程内更新画面,速度较慢。   SurfaceView:基于view视图进行拓展的视图类,更适合2D游戏的开发;是view的子类,类似使用双缓机制,在新

未来~超越自己 1116
上一篇: ExitInterface
下一篇: 使用内置的Gallery应用程序选择图形
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值