1.SurfaceView的基本使用模板public class SurfaceViewWriter extends SurfaceView implements SurfaceHolder.Callback, Runnable {
SurfaceHolder holder;
boolean isRunning;
Thread drawThread;
Canvas
转载
2024-05-14 19:11:27
0阅读
SurfaceView可以说是View的孪生兄弟了,其实在Android系统提供的View就可以满足大部分的绘图需求了,但是在某些 时候,View也有些心有余而力不足。我们知道,View通过刷新来重回视图,android系统通过发出VSYNC信号进行视图的重 绘,刷新间隔为16ms,然后对于操作逻辑太多,需要频繁刷新页面(如:游戏界面)时,就会不断的阻塞主线程,从而导致页面 卡顿。为了避免
转载
2023-09-04 22:10:41
212阅读
我们知道view的绘制一般是在主线程进行的,这就导致了如果view的绘制很复杂,主线程就会一直被view的绘制占用而导致卡死。因此surfaceView的出现很好的解决了这个问题。Surfaceview允许在子线程中进行view的绘制,因此可以使用它进行复杂的绘制,主线程还可以去处理其他的事情。这也是surfaceview最棒的优点。SurfaceView中有一个显示的区域对象Surface,Su
转载
2024-04-09 18:06:54
60阅读
上一篇文章说了SurfaceView默认Z-order是小于主窗口的,为了能够显示出来,需要以自身所占矩形区域在主窗口设置透明区域,这是在SurfaceView的回调onAttachedToWindow中实现的,本篇接着看SurfaceView另一个回调onWindowVisibilityChanged。首先还是贴出上一篇分析的ViewRootImpl的performTraversals方法部分代
转载
2023-08-17 16:09:55
210阅读
前面说到了画图,其实更好的就是使用 surfaceView了。surfaceView 继承于 View,View里面嵌套了一个专门用于画图的 surface,对于一个View的onDraw()方法,不能够满足将其移动到后台线程中去。因为从后台线程修改一个GUI元素会被显式地禁止的。当需要快速地更新View的UI,或者当前渲染代码阻塞GUI线程的时间过长的时候,SurfaceView就是解决上述问题
转载
2023-10-19 14:04:42
42阅读
学习内容:1.掌握Surface的使用...2.Android中如何实现视频播放... 1.SurfaceView类的使用 在Android中,一般播放音频时我们可以去使用Android提供的MediaPlayer类,但是想要播放视频仅仅依靠MediaPlayer类是远远不够的...这里还需要使用到一个SurfaceView这个组件来完成..为什么?因为像视频和SD图形等都需
转载
2024-06-18 16:13:25
338阅读
关于使用SurfaceView,网上很多版本都是直接创建一个SurfaceView的子类,然后实现SurfaceHolder.Callback, Runnable接口,并启动一个线程。一来就搞这么一套东西,让人很不理解。1,其实SurfaceView就是一个控件,我们完全可以直接在上面绘制图像。方法如下:在布局文件中包含一个Surfaceview的组件:如下: <SurfaceView
转载
2023-10-08 16:54:55
181阅读
SurfaceView 一下demo的地址 SurfaceView 的作用:SurfaceView 适用被动更新,如频繁的刷新,在子线程刷新不会阻塞主线程,适用于界面频繁更新 (View适用主动更新) SurfaceView可以控制刷新频率。 SurfaceView底层利用双缓存机制,绘图时不会出现闪烁问题。SurfaceView 的使用方法:一般都是view继承SurfaceView,实现Sur
1. 什么是surfaceviewsurfaceview内部机制和外部层次结构在安卓开发中,我们经常会遇到一些需要高性能、高帧率、高画质的应用场景,例如视频播放、游戏开发、相机预览等。这些场景中,我们需要直接操作图像数据,并且实时地显示到屏幕上。如果我们使用普通的view组件来实现这些功能,可能会遇到以下问题:view组件是在主线程中进行绘制的,如果绘制过程耗时过长或者频繁刷新,可能会导致主线程阻
原创
2023-09-05 15:44:18
769阅读
Android之SurfaceView学习(一)
首先我们先来看下官方API对SurfaceView的介绍SurfaceView的API介绍Provides a dedicated drawing surface embedded inside of a view hierarchy. You can control the format of this surface and, if you
转载
2024-07-30 09:59:58
174阅读
在本教程中,介绍OPhone中提供的SurfaceView以及如何通过SurfaceView来编写一个显示GIF动画的View 。 SurfaceView介绍
通常情况程序的
View和用户响应都是在同一个线程中处理的,这也是为什么处理长时间事件(例如访问网络)需要放到另外的线程中去(防止阻塞当前UI线程的操作和绘
1. SurfaceView简介UI主线程)中绘制的。这个主应用程序线程同时也用来处理所有的用户交互(例如,按钮单击或者文本输入)。 遗憾的是,对于一个View的onDraw方法,不能这样做,因为从后台线程修改一个GUI元素会被显式地禁止的。当需要快速地更新View的UI,或者当渲染代码阻塞GUI线程的时间过长的时候,SurfaceView就是解决上述问题的最佳选择。 Su
转载
2024-07-02 21:25:02
301阅读
surfaceview内部机制和外部层次结构在安卓开发中,我们经常会遇到一些需要高性能、高帧率、高画质的应用场景,例如视频播
原创
精选
2024-05-12 12:40:40
232阅读
之前我们对view和surfaceview 做了比较和取舍,最后我们发现surfaceview更加的适合运作与游戏开发中,那么下面就让我们来看看这个surfaceview的结构吧; package eoe.demo;
import android.content.Context;
import android.graphics.Canvas;
import android.gr
转载
2024-07-31 21:52:09
0阅读
1. SurfaceView的定义前面已经介绍过View了,下面来简单介绍一下SurfaceView,参考SDK文档和网络资料:SurfaceView是View的子类,它内嵌了一个专门用于绘制的Surface,你可以控制这个Surface的格式和尺寸,Surfaceview控制这个Surface的绘
原创
2021-12-16 14:37:20
586阅读
SurfaceView在游戏开发中有着举足轻重的地位,它对于画面的控制有着更大的自由度(不像View要用handler来更新,关于View的),但这方面的参考资料并不是太多,能找到的例子都有点喧宾夺主的感觉,不能把使用的流程清晰展示出来,下面是个简单的示例,力求把流程清楚展示,其他的可简则简。 程序效果:用线程画一个蓝色的长方形。
package com.ray.test;
原创
2023-03-31 11:38:18
103阅读
如果你的游戏不吃CPU,用View就比较好,符合标准Android操作方式,由系统决定刷新surface的时机。 但如果很不幸的,你做不到不让你的程序吃CPU,你就只好使用SurfaceView来强制刷新surface了,不然系统的UI进程很可能抢不过你那些吃CPU的线程。 当然其实不止这两种方法来刷新Surface的,这两种只是纯Java应用比较常见的方法。SurfaceView和View最
转载
2024-05-20 22:05:29
121阅读
当我们需要开发一个复杂的游戏的时候,而且对程序的执行效率要求很高时,View类就不能满足需求了,这时必须用SurfaceView类进行开发。例如,对速度要求很高的游戏时,View类就不能满足需求了,这时必须使用SurfaceView类进行开发。例如,对速度要求很高的游戏,可以使用双缓冲来显示。游戏中的背景、人物、动画等都需要绘制在一个画布(Canvas)上
转载
2023-10-12 22:04:32
1364阅读
-=
原创
2022-07-17 00:04:06
714阅读
Android屏幕刷新一遍时间间隔为16ms,如果view能够在16ms内完成所需要执行的绘图换作,那么在视觉上,界面就是流畅的,否则就会出现卡顿现象,在很多情况下,这些逻辑处理又是必须的,为了解决这个问题,Android 引用了surfaceView,在二个方面改进了View的绘图操作: 使用双缓
原创
2021-08-13 09:52:48
141阅读