自定义控件(2.3):SurfaceView和SurfaceHolder

本例需求及流程:

Activity加载自定义的SurfaceView-> SurfaceView 构造器中:初始化画笔、传感器、SurfaceHolder并注册SurfaceHolder的监听(surfaceCreated和surfaceDestroyed)->创建surface即surfaceCreated时:注册传感器监听,初始化Ball(包括球的图片、位置、活动区域),启动线程并循环执行(根据摇一摇的加速度判断球将来坐标是否越界,越界则改变速度方向即反弹,未越界则设定将来坐标,将球绘制到新的坐标上)

本例启示:

1.SurfaceView多用于需动态绘制view的情况;

2.SurfaceView往往需要循环执行一个线程,对view实时更新;

3.为何一定要用surfaceview?view行不行?不行,只有用surfaceview才能进一步用surfaceholder及其管理surface生命周期的方式和绘制方式;

示例Demo示例Demo(摇一摇小球碰撞)

时间: 2024-08-04 10:59:19

自定义控件(2.3):SurfaceView和SurfaceHolder的相关文章

Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的关系

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

Android图形系统之Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的联系

1.Surface Surfaceextends Objectimplements Parcelable java.lang.Object    ? Android.view.Surface Class Overview -------------------------------------------------------------------------------- Handle onto a raw buffer that is being managed by the scre

Android笔记:SurfaceView与SurfaceHolder对象

摘要 调试Media播放时,不时用到SurfaceView与SurfaceHolder对象,写case测试及实际运行效果, 基本上搞清楚这两个对象的用法及区别 1.SurfaceView public class SurfaceView extends View SurfaceView是视图(View)的继承类, 这个视图里内嵌了一个专门用于绘制 调试Media播放时,不时用到SurfaceView与SurfaceHolder对象,写case测试及实际运行效果, 基本上搞清楚这两个对象的用法及区

自定义控件(2.2):SurfaceView和SurfaceHolder

本例需求及流程: Activity加载自定义的SurfaceView-> SurfaceView 构造器中启动线程A,循环改变SurfaceView的x,y坐标,当x,y坐标到某点时设渐显标志位picAlphaFlag为true -> Surface创建时即surfaceCreated中,启动线程B,循环根据SurfaceView的x,y(被线程A循环改变)实时绘制图的位置,并且picAlphaFlag为true时,渐显另一张图. 本例可优化点(个人意见): 1.线程A和线程B可合并: 本例启

自己定义控件(2.2):SurfaceView和SurfaceHolder

本例需求及流程: Activity载入自己定义的SurfaceView-> SurfaceView 构造器中启动线程A.循环改变SurfaceView的x,y坐标,当x,y坐标到某点时设渐显标志位picAlphaFlag为true -> Surface创建时即surfaceCreated中,启动线程B,循环依据SurfaceView的x,y(被线程A循环改变)实时绘制图的位置,而且picAlphaFlag为true时,渐显还有一张图. 本例可优化点(个人意见): 1.线程A和线程B可合并: 本

他们控制的定义(2.3):SurfaceView和SurfaceHolder

这个例子需求和流程: Activity加载它们的定义SurfaceView-> SurfaceView 构造函数:初始化刷.传感器.SurfaceHolder和注册SurfaceHolder的监听(surfaceCreated和surfaceDestroyed)->创建surface即surfaceCreated时:注冊传感器监听,初始化Ball(包含球的图片.位置.活动区域),启动线程并循环运行(依据摇一摇的加速度推断球将来坐标是否越界,越界则改变速度方向即反弹,未越界则设定将来坐标,将球绘

SurfaceView和SurfaceHolder的基本用法

仅做记录使用,新手也可以来看看,怎么得到一个surfaceholder. 1.在xml文件中增加一个surfaceView控件. <SurfaceView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/surfaceView" android:layout_alignParentTop="true&q

Android之——Surface、SurfaceView与SurfaceHolder.Callback初探

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47167553 一.Surface    Surface在SDK的文档中的描述是这样的:Handle onto a raw buffer that is being managed by the screen compositor,Android中的Surface就是一个用来画图形(graphics)或图像(image)的地方,对于View及其子类,都是画在Surface上,各Su

android大扫盲之SurfaceView,SurfaceHolder,SurfaceHolder.CallBack

最近接触到了SurfaceView,SurfaceHolder,SurfaceHolder.CallBack,一直不求其解,现在来粗浅认识一下它们. 先看一下官方的定义: 1.SurfaceView SurfaceView是视图(View)的继承类,这个视图里内嵌了一个专门用于绘制的Surface.你可以控制这个Surface的格式和尺寸.Surfaceview控制这个Surface的绘制位置.surface是纵深排序(Z-ordered)的,这表明它总在自己所在窗口的后面.surfacevie