SurfaceView介绍 通常情况程序的View和用户响应都是在同一个线程中处理的,这也是为什么处理长时间事件(例如访问网络)需要放到另外的线程中去(防止阻塞当前UI线程的操作和绘制)。但是在其他线程中却不能修改UI元素,例如用后台线程更新自定义View(调用View的在自定义View中的onDraw函数)是不允许的。   如果需要在另外的线程绘制界面、需要迅速的
转载 10月前
1009阅读
1.概念      SurfaceView是View类的子类,可以直接从内存或者
原创 2022-11-14 22:16:18
215阅读
简介   Android的窗口界面是由多个View组成的View Hierachy树形结构,WMS会从DecorView进入对整个View Hierachy进行管理控制UI的显示,因此整个View Hierachy在WMS中有一个对应的WindowState,   普通的Android控件都是将自己绘制到宿主窗口的绘图表面上,即都是在同一块图型缓冲区操作,为什么会这样做呢?因为如果andorid把
转载 10月前
1196阅读
周末看《精通Android游戏开发》(Pro Android Games),里面讲到游戏的框架,其中一个重要的概念surfaceview,觉得不是很理解,于是花了一点时间研究了下,写下自己的心得。surface,这个单词的意思是浮在表面的,那么surfaceview就是浮在表面的view了。如果真的...
原创 2021-08-11 11:04:05
1448阅读
什么是surface?Activity是用了来显示界面的,那么Activity的界面是如何绘制出来的呢?这个肯定和Surface有关,但是博主是新手,具体关联就不清楚,博主自己理解,Surface就像屏幕上的一个画布,canvas是一位画家,paint就是一支笔,view其实就是由一位画家canvas还有一些关于view自身的事件的组成的一个对象,有了canvas,就可以往surface上面作画了
1. SurfaceView的定义前面已经介绍过View了,下面来简单介绍一下SurfaceView,参考SDK文档和网络资料:SurfaceView是View的子类,它内嵌了一个专门用于绘制的Surface,你可以控制这个Surface的格式和尺寸,Surfaceview控制这个Surface的绘
原创 2021-12-16 14:37:20
553阅读
SurfaceView概述作者:Legend之前我讲解了Surface的绘图原理概述,对于程序员,怎么使用可能是眼下至关重要的事情。本节讲解SurfaceView的使用。但在此之前我想先简单概述一下SurfaceView的特点。SurfaceView众所周知,SurfaceView继承自View,但它与View不同?View是在UI的主线程中更新画面,而SurfaceView是在一个新线程中更新
转载 9月前
98阅读
   开讲前,先从View说起吧。    View类,是Android的一个超类,每个View都有一个用于绘画的画布,这个画布可以进行任意的扩展。当需要绘制复杂的图像或者对线程的执行效率要求比较高的时候,View就不能满足全部的要求了。View是Widget框架下的一个直接拖拉的控件产物。例如:当需要双缓冲来显示,直接访问画布Canvas,这写就导致了当前V
转载 3月前
271阅读
一、引入: View是通过刷新来重绘视图,Android系统通过发出V-Sync(垂直同步)信号来进行屏幕的重绘,刷新的间隔时间为16ms。如果操作的逻辑过多时,就会掉帧从而使得用户感觉到卡顿,Android提供了SurfaceView来解决这种情况。 **其他View是绘制在“表层”的上面,而SurfaceView就是充当“表层”本身。**SDK的文档 说到:SurfaceView就是在窗口
转载 10月前
386阅读
SurfaceView简介 surfaceView 是视图 (View) 的继承类,这个视图里内嵌了一个专门用于绘制的 surface,可以控制这个 surface 的格式和尺寸。surfaceview 控制这个 surface 的绘制位置。SurfaceView分析surface 是纵深排序 (Z-ordered) 的,这表明它总在自己所在窗口的后面。surfaceview 提供了一个可见区域
SurfaceView介绍通常情况程序的View和用户响应都是在同一个线程中处理的,这也是为什么处理长时间事件(例如访问网络)需要放到另外的线程中去(防止阻塞当前UI线程的操作和绘制)。但是在其他线程中却不能修改UI元素,例如用后台线程更新自定义View(调用View的在自定义View中的onDraw函数)是不允许的。如果需要在另外的线程绘制界面、需要迅速的更新界面或则渲染UI界面需要较长的时间,
转载 3月前
47阅读
本篇文章将围绕自定义控件——CameraSurfaceView来阐述Android Camera的使用详解,这里的Camera不包含Camera2,因为Camera2只适应5.0+的安卓系统,而目前市面上5.0以下的安卓设备还是有相当大的一部分的,所以当前的主流还是使用Camera来开发相机。首先先介绍下CameraSurfaceView,这是一个集拍照,录像,闪光灯,摄像头切换,前后台切换,自适
转载 2023-08-26 10:25:36
359阅读
什么是SurfaceView你可以把View理解为一个经过系统优化的,可以用来高效的执行一些帧数比较低动画的对象,它具有特定的使用 场景,比如有一些帧数较低的游戏就可以使用它来完成:贪吃蛇、俄罗斯方块、棋牌类等游戏,因为这些游戏执行的帧数都很低。但是如果是一些实时类的游戏,如 射击游戏、塔防游戏、RPG游戏等就没办法使用View来做,因为它的帧数太低了,会导致动画执行不顺畅。所以我们需要一个能自己
(摘自参考其他博客的说明) 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使用介绍  SurfaceView是View的一个特殊子类,它的目的是另外提供一个线程进行绘制操作。  要使用SurfaceView进行绘制,步骤如下:  1.用SurfaceView进行绘制,首先要创建一个类,继承 SurfaceView,同时这个类应该实现SurfaceHolder.Callback接口。  这个接口中的三个回调函数(surfaceChanged
转载 2023-06-19 15:05:11
175阅读
SurfaceView继承自View,拥有独立的绘图表面,即不与其宿主窗口共享一个绘图表面,通过Canvas画布绘制 可在另一线程中更新界面,且不阻碍界面交互,不会占用主线程资源与View区别SurfaceView 1、子线程中可以重新绘制画面,且绘图效率更高,适合动画等复杂绘制页面 2、每个SurfaceView拥有独立的surface,通过在顶级surface上打洞来显示自己。这些surfac
转载 2023-06-26 13:26:38
272阅读
前段时间在做一个截屏分享的功能,所截取的内容包括一个surfaceView+MediaPlayer的视频,虽然最终实现了该功能,但是确实也走了很多弯路,当时本想总结一下的,但后来一直拖着没弄。最近又涉及到包含listView(要截取listView全部内容,包括屏幕以外的部分)截屏,弄完了就在此记录一下方便以后查看,免得过段时间忘了,又得到处找。surfaceView截屏思路:1.、先截取整个静态
转载 2月前
296阅读
我们知道view的绘制一般是在主线程进行的,这就导致了如果view的绘制很复杂,主线程就会一直被view的绘制占用而导致卡死。因此surfaceView的出现很好的解决了这个问题。Surfaceview允许在子线程中进行view的绘制,因此可以使用它进行复杂的绘制,主线程还可以去处理其他的事情。这也是surfaceview最棒的优点。SurfaceView中有一个显示的区域对象Surface,Su
  • 1
  • 2
  • 3
  • 4
  • 5