在Android游戏当中充当主要的除了控制类外就是显示类,Android游戏开发中比较重要和复杂的就是显示和游戏逻辑的处理。 
这里我们说下android.view.View和android.view.SurfaceView。SurfaceView是从View基类中派生出来的显示类,直接子类有GLSurfaceView和VideoView,可以看出GL和视            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-18 17:29:26
                            
                                39阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            SurfaceView是视图(View)的继承类,这个视图里内嵌了一个专门用于绘制的Surface。你可以控制这个Surface的格式和尺寸。Surfaceview控制这个Surface的绘制位置。surface是纵深排序(Z-ordered)的,这表明它总在自己所在窗口的后面。surfaceview提供了一个可见区域,只有在这个可见区域内的surface部分内容才可见,可见区域外的部分不可见。s            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-27 06:57:12
                            
                                344阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            如何在Android 12中获取SurfaceView画布
## 引言
在Android开发中,SurfaceView是一个常用的控件,用于在屏幕上进行绘制和动画操作。然而,在Android 12中,由于安全性增强的原因,开发者可能会遇到一些问题,比如无法直接获取SurfaceView的画布。本文将介绍如何在Android 12中解决无法获取SurfaceView画布的问题。
## 流程
下面            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-02-04 10:03:36
                            
                                56阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            (摘自参考其他博客的说明) 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
                            
                                218阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # Android 的 SurfaceView
## 简介
Android 的 SurfaceView 是一个基于 Surface 子系统实现的 View,用于在屏幕上绘制复杂的图形、动画以及视频等内容。与普通的 View 不同,SurfaceView 具有独立的绘制线程,可以在后台进行绘制操作,避免阻塞主线程的 UI 操作,提高绘制效率。
## 使用 SurfaceView
使用 Sur            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-10-29 08:15:33
                            
                                100阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            写完 Android 画笔Paint,自然少不了Canvas画布,本文延续上篇风格,一一来过Canvas API
drawARGB
1void drawARGB (int a,int r,int g,int b)
统一颜色绘制,四个参数取值范围0~255
drawArc
12345void drawArc (RectF oval,float startAngle,float sweepAngle,            
                
         
            
            
            
            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默认Z-order是小于主窗口的,为了能够显示出来,需要以自身所占矩形区域在主窗口设置透明区域,这是在SurfaceView的回调onAttachedToWindow中实现的,本篇接着看SurfaceView另一个回调onWindowVisibilityChanged。首先还是贴出上一篇分析的ViewRootImpl的performTraversals方法部分代            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-17 16:09:55
                            
                                210阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            什么是Surface? 
简单地说Surface对应了一块屏幕缓冲区,每个window对应一个Surface,任何View都是画在Surface上的,传统的view共享一块屏幕缓冲区,所有的绘制必须在UI线程中进行 什么是SurfaceView?  说SurfaceView是一个View也许不够严谨,然而从定义中publicclassSurfaceViewextendsView{...}显示Sur            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-26 11:10:25
                            
                                261阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            图1 TextureView及其依赖的java/c++类本文将从TetureView的用途、使用模式及其在Framework依赖的类(图1所示那些)的三个方面进行说明。1. 用途TextureView可用于承载显示『数据流』的场合,之前看到『流』不太明确其意义,这里给两个具体的场景大家体会一下:camera模块从sensor采集了1080p@30fps的预览数据『流』,视频通话模块从网络包里解出实            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-26 13:42:02
                            
                                354阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            SurfaceView 的概念和用途surfaceview是view的一个子类,可以直接从内存或者DMA等硬件接口中取得图像数据,是一个非常重要的绘图视图。他的特性是:可以在主线程之外的线程中向屏幕绘图,这样可以避免画图任务繁重的时候造成的主线程阻塞,从而提高了程序的反应速度。在游戏开发过程中多用到SurfaceView,游戏中的背景、人物、动画等等在画布canvas中画出。Surfacevie            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-17 16:10:11
                            
                                352阅读
                            
                                                                             
                 
                
                             
         
            
            
            
                在android中开发游戏,一般来说,或想写一个复杂一点的游戏,是必须用到SurfaceView来开发的。 
经过这一阵子对android的学习,我找到了自已在android中游戏开发的误区,不要老想着用Layout和view去实现,不要将某个游戏 
中的对象做成一个组件来处理。应该尽量想着在Canvas(画布)中画出游戏中的背景、人物、动画等。 
             
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-26 09:44:26
                            
                                112阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            两眼一摸黑,感觉看那些开发文档有点难看懂,可能是基础太差的原因,我需要一个循序渐进的介绍,实在没办法,自己写个得了SurfaceView是视图(View)的继承类,Surface的翻译是表面,我很想将其理解为画板,不过画板已经有其它类了,可以理解为一个绘画器,将一个图形数据交给它,它在画板上画出来。首先制造一个最基本的布局<?xml version="1.0" encoding="utf-8            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-26 15:28:16
                            
                                198阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Canvas的一些基本方法:Canvas():创建一个空的画布,可以使用setBitmap()方法来设置绘制的具体画布;Canvas(Bitmap bitmap):以bitmap对象创建一个画布,则将内容都绘制在bitmap上,bitmap不得为null;Canvas(GL gl):在绘制3D效果时使用,与OpenGL有关;drawColor:设置画布的背景色;setBitmap:设置具体的画布;            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-29 13:48:55
                            
                                150阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            使用的SurfaceView的时候,一般情况下还要对其进行创建,销毁,改变时的情况进行监视,这就要用到SurfaceHolder.Callback. 只要继承SurfaceView类并实现SurfaceHolder.Callback接口就可以实现一个自定义的SurfaceView了,SurfaceHolder.Callback在底层的Surface状态发生变化的时候通知View,Surf            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-24 11:19:36
                            
                                836阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            本篇文章将围绕自定义控件——CameraSurfaceView来阐述Android Camera的使用详解,这里的Camera不包含Camera2,因为Camera2只适应5.0+的安卓系统,而目前市面上5.0以下的安卓设备还是有相当大的一部分的,所以当前的主流还是使用Camera来开发相机。首先先介绍下CameraSurfaceView,这是一个集拍照,录像,闪光灯,摄像头切换,前后台切换,自适            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-26 10:25:36
                            
                                408阅读
                            
                                                                             
                 
                
                             
         
            
            
            
              
 SurfaceView介绍 通常情况程序的View和用户响应都是在同一个线程中处理的,这也是为什么处理长时间事件(例如访问网络)需要放到另外的线程中去(防止阻塞当前UI线程的操作和绘制)。但是在其他线程中却不能修改UI元素,例如用后台线程更新自定义View(调用View的在自定义View中的onDraw函数)是不允许的。   如果需要在另外的线程绘制界面、需要迅速的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-11 20:56:15
                            
                                1170阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            SurfaceView是继承View的派生类(public class SurfaceView extends View这个View里内嵌了一个专门用于绘制的Surface,这个可以类似的理解成为一个在View里的Canvas。你可以控制这个Surface的格式和尺寸。Surfaceview类则控制这个Surface在屏幕上的正确位置。  在一般情            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-26 13:39:30
                            
                                211阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            首先,我们看看SurfaceView的官方介绍:Provides a dedicated drawing surface embedded inside of a view hierarchy. You can control the format of this surface and, if you like, its size; the SurfaceView takes care of p            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-16 13:04:25
                            
                                155阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、canvas简介 1.1什么是canvas?   是HTML5提供的一种新标签,ie9才开始支持的  <canvas></canvas>  英 ['kænvəs] 美 ['kænvəs] 帆布 画布  canvas是一个矩形区域的画布,可以用JS控制每一个像素在上面绘画。  canvas标签使用Jav            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-03 08:15:49
                            
                                144阅读
                            
                                                                             
                 
                
                                
                    