本篇文章将围绕自定义控件——CameraSurfaceView来阐述Android Camera的使用详解,这里的Camera不包含Camera2,因为Camera2只适应5.0+的安卓系统,而目前市面上5.0以下的安卓设备还是有相当大的一部分的,所以当前的主流还是使用Camera来开发相机。首先先介绍下CameraSurfaceView,这是一个集拍照,录像,闪光灯,摄像头切换,前后台切换,自适
转载 2023-08-26 10:25:36
359阅读
  SurfaceView介绍 通常情况程序的View和用户响应都是在同一个线程中处理的,这也是为什么处理长时间事件(例如访问网络)需要放到另外的线程中去(防止阻塞当前UI线程的操作和绘制)。但是在其他线程中却不能修改UI元素,例如用后台线程更新自定义View(调用View的在自定义View中的onDraw函数)是不允许的。   如果需要在另外的线程绘制界面、需要迅速的
转载 10月前
1009阅读
(摘自参考其他博客的说明) Android中的SurfaceView在更新视图时,为了提高更新效率,加强用户体验,采用了双缓存机制。 Android的官方说明: Note: On each pass you retrieve the Canvas from the SurfaceHolder, the previous state of the Canvas will be retained. I
转载 2023-08-25 16:51:18
174阅读
surfaceview双缓存游戏设计基准。用于android界面游戏画面滚动缓存加载,多用于游戏开发。
原创 2013-10-15 09:00:35
360阅读
首先我们先来看下官
原创 2022-06-01 11:53:17
54阅读
SurfaceView继承自View,拥有独立的绘图表面,即不与其宿主窗口共享一个绘图表面,通过Canvas画布绘制 可在另一线程中更新界面,且不阻碍界面交互,不会占用主线程资源与View区别SurfaceView 1、子线程中可以重新绘制画面,且绘图效率更高,适合动画等复杂绘制页面 2、每个SurfaceView拥有独立的surface,通过在顶级surface上打洞来显示自己。这些surfac
转载 2023-06-26 13:26:38
270阅读
SurfaceView使用介绍  SurfaceView是View的一个特殊子类,它的目的是另外提供一个线程进行绘制操作。  要使用SurfaceView进行绘制,步骤如下:  1.用SurfaceView进行绘制,首先要创建一个类,继承 SurfaceView,同时这个类应该实现SurfaceHolder.Callback接口。  这个接口中的三个回调函数(surfaceChanged
转载 2023-06-19 15:05:11
175阅读
前段时间在做一个截屏分享的功能,所截取的内容包括一个surfaceView+MediaPlayer的视频,虽然最终实现了该功能,但是确实也走了很多弯路,当时本想总结一下的,但后来一直拖着没弄。最近又涉及到包含listView(要截取listView全部内容,包括屏幕以外的部分)截屏,弄完了就在此记录一下方便以后查看,免得过段时间忘了,又得到处找。surfaceView截屏思路:1.、先截取整个静态
转载 2月前
277阅读
我们知道view的绘制一般是在主线程进行的,这就导致了如果view的绘制很复杂,主线程就会一直被view的绘制占用而导致卡死。因此surfaceView的出现很好的解决了这个问题。Surfaceview允许在子线程中进行view的绘制,因此可以使用它进行复杂的绘制,主线程还可以去处理其他的事情。这也是surfaceview最棒的优点。SurfaceView中有一个显示的区域对象Surface,Su
    surface是SurfaceView的一个可见区域,它对应了一个内存区域,由于内存区域的对象都是有生命周期的,可以动态申请创建和销毁,当然也可能是更新。于是就有了作用于这个内存区的操作,即surcaceCreated/Changed/Destroyed.    getHolder().addCallback(
原创 2015-01-19 13:51:05
537阅读
1.概念       SurfaceView是View类的子类,可以直接从内存或者DMA等硬件接口取得图像数据,是个非常重要的绘图视图。它的特性是:可以在主线程之外的线程中向屏幕绘图上。这样可以避免画图任务繁重的时候造成主线程阻塞,从而提高了程序的反应速度。在游戏开发中多用到SurfaceView,游戏中的背景、人物、动画等等尽量在画布canvas中画出。 2.实现方法 1)实现步骤     a.
转载 2014-09-01 11:28:00
136阅读
2评论
在Android系统中,有一种特殊的视图,称为SurfaceView,它拥有独立的绘图表面,即它不与其宿主窗口共享同一个绘图表面。由于拥有独立的绘图表面,因此SurfaceView的UI就可以在一个独立的线程中进行绘制。又由于不会占用主线程资源,SurfaceView一方面可以实现复杂而高效的UI,
转载 2017-08-04 10:54:00
77阅读
2评论
surface知识点,待完善 SurfaceView和TextureView在学习直播的过程遇到一个问题:连麦场景下能够支持大小窗口切换(即小窗口变大,大窗口变小),大窗口是TextView(用于拉流显示),而小窗口是SurfaceView(用于推流时的本地预览),切换的思路是直接改变View大小,在将TextView变小后还能正常显示,但是将Surfa
转载 10月前
517阅读
什么是Surface? 简单地说Surface对应了一块屏幕缓冲区,每个window对应一个Surface,任何View都是画在Surface上的,传统的view共享一块屏幕缓冲区,所有的绘制必须在UI线程中进行 什么是SurfaceView? 说SurfaceView是一个View也许不够严谨,然而从定义中publicclassSurfaceViewextendsView{...}显示Sur
转载 2023-06-26 11:10:25
244阅读
说一下自己关于SurfaceView的一点感受:(1.)定义: 可以直接从内存或者DMA等硬件接口取得图像数据,是个非常重要的绘图容器。 它的特性:可以在主线程之外的线程中向屏幕绘图上。这样可以避免画图任务繁重时造成主线程阻塞,从而提高了程序的反应速度。在游戏开发中多用到SurfaceView,游戏中的背景、人物、动画等等尽量在画布canvas中画出。 SurfaceView提供直接访问一个可画图
转载 2023-06-26 11:11:24
89阅读
简介   Android的窗口界面是由多个View组成的View Hierachy树形结构,WMS会从DecorView进入对整个View Hierachy进行管理控制UI的显示,因此整个View Hierachy在WMS中有一个对应的WindowState,   普通的Android控件都是将自己绘制到宿主窗口的绘图表面上,即都是在同一块图型缓冲区操作,为什么会这样做呢?因为如果andorid把
转载 10月前
1193阅读
上一篇文章说了SurfaceView默认Z-order是小于主窗口的,为了能够显示出来,需要以自身所占矩形区域在主窗口设置透明区域,这是在SurfaceView的回调onAttachedToWindow中实现的,本篇接着看SurfaceView另一个回调onWindowVisibilityChanged。首先还是贴出上一篇分析的ViewRootImpl的performTraversals方法部分代
转载 2023-08-17 16:09:55
139阅读
图1 TextureView及其依赖的java/c++类本文将从TetureView的用途、使用模式及其在Framework依赖的类(图1所示那些)的三个方面进行说明。1. 用途TextureView可用于承载显示『数据流』的场合,之前看到『流』不太明确其意义,这里给两个具体的场景大家体会一下:camera模块从sensor采集了1080p@30fps的预览数据『流』,视频通话模块从网络包里解出实
转载 2023-06-26 13:42:02
319阅读
    在android中开发游戏,一般来说,或想写一个复杂一点的游戏,是必须用到SurfaceView来开发的。 经过这一阵子对android的学习,我找到了自已在android中游戏开发的误区,不要老想着用Layout和view去实现,不要将某个游戏 中的对象做成一个组件来处理。应该尽量想着在Canvas(画布)中画出游戏中的背景、人物、动画等。 &nbsp
  • 1
  • 2
  • 3
  • 4
  • 5