`
viking168
  • 浏览: 6553 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

view and SurfaceView

阅读更多

     在Android游戏当中显示类为view类,Android游戏开发中比较重要和复杂的就是显示和游戏逻辑的处理。在现实类中有android.view.View和android.view.SurfaceView。

      SurfaceView是从View基类中派生出来的显示类,直接子类有GLSurfaceView和VideoView,可以看出GL和视频播放以及Camera摄像头一般均使用SurfaceView, SurfaceView可以控制表面的格式,比如大小,显示在屏幕中的位置,最关键是的提供了SurfaceHolder类,使用getHolder方法获取,相关的有

Canvas lockCanvas()

Canvas lockCanvas(Rect dirty) 、

void removeCallback(SurfaceHolder.Callback callback)、

void unlockCanvasAndPost(Canvas canvas)

 控制图形以及绘制,而在SurfaceHolder.Callback 接口回调中可以通过下面三个抽象类可以自己定义具体的实现

abstract void  surfaceChanged(SurfaceHolder holder, int format, int width, int height)

abstract void  surfaceCreated(SurfaceHolder holder)

abstract void  surfaceDestroyed(SurfaceHolder holder)

对于Surface相关的,Android底层还提供了GPU加速功能,所以一般实时性很强的应用中主要使用SurfaceView而不是直接从View构建.

分享到:
评论

相关推荐

    Android中SurfaceView截屏

    // Unlock the canvas and post it back to the SurfaceView holder.unlockCanvasAndPost(canvas); // Save the screenshot to disk saveBitmapToFile(bitmap); } } } private void saveBitmapToFile...

    surfaceView用法例子

    SurfaceView是Android系统中一种特殊的View,主要用于在应用程序中显示实时的视频流或者进行高性能的图形绘制,如游戏场景。它的出现主要是为了解决View体系中UI更新与绘图性能之间的矛盾,因为普通的View在更新时会...

    android使用surfaceview+MediaPlayer播放视频

    指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型 使用android自带的VideoView,这种方法太简单就不介绍了 使用SurfaceView+MediaPlayer,这种方式效果比较好,这里也重点介绍 SurfaceView从android 1.0就有了...

    Android代码-texturevideoview

    TextureVideoView for ...extends android.view.TextureView instead of a android.view.SurfaceView thus allowing proper view animations as described in the Property Animation API guide API addition: Call se

    Android 自定义画布canvas 实现绘制和清空画布功能

    首先,我们需要创建一个自定义View类,这个类将继承自Android的View或SurfaceView。在这个自定义View中,我们将重写`onDraw()`方法,这是绘制图形的主要入口。在`onDraw()`方法中,系统会为我们提供一个Canvas对象,...

    Android 2D绘图小例子

    首先,SurfaceView是一个特殊的View类,设计用于显示高性能、连续更新的图像,比如游戏画面或视频流。它在应用程序的UI线程之外维护了一个单独的渲染线程,这样可以避免UI操作阻塞,从而提供流畅的动画效果。创建...

    Android 图片镜像倒影特效

    protected void getChildStaticTransformation(View child, Transformation transformation) { super.getChildStaticTransformation(child, transformation); ImageView imageView = (ImageView) child; Matrix...

    smack-extensions-4.1.0-alpha3.zip

    相比于SurfaceView,TextureView在布局嵌套和透明度方面有优势。 4. **Fast-Video-View**: 这是一个针对Android的VideoView优化实现,可能包括以下特性: - 提高性能:通过更有效的渲染方式减少CPU占用,提高视频...

    Android代码-SnowingView

    三种方式实现雪花掉落效果(原作者的View,我补充的SurfaceView以及WallpaperService) 拥有加速度传感器,效果更酷 Blog 手摸手教你做动态壁纸 About Me Weibo Blog QQ Group 欢迎讨论 479729938 License ...

    安卓Android源码——转盘抽奖实例.zip

    2. **自定义View**:为了实现转盘的旋转动画,开发者可能创建了一个自定义View类,继承自View或者SurfaceView。自定义View可以让我们更精细地控制绘制过程,比如在onDraw()方法中绘制转盘的各个部分,并在...

    Extended GridView with Fixed Header and Pager

    总的来说,实现"Extended GridView with Fixed Header and Pager"需要对Android UI组件、自定义View、数据适配器、事件处理以及性能优化等多方面有深入理解。这个项目提供了一个很好的机会,让开发者在实践中提升...

    Android应用源码之MoveBackgroundSample.zip

    2. **自定义View**:为了实现背景移动,开发者可能创建了一个自定义View类,扩展了View或SurfaceView。自定义View允许开发者编写自己的绘图逻辑,实现复杂的动画效果。 3. **绘图与动画(Drawing and Animation)**...

    Android二维码扫描

    SurfaceView surfaceView = (SurfaceView) findViewById(R.id.preview_view); SurfaceHolder surfaceHolder = surfaceView.getHolder(); if (hasSurface) { initCamera(surfaceHolder); } else { ...

    Human-detection-and-Tracking-master源码

    本项目基于Java编写,遵循MVC(Model-View-Controller)架构模式,通过Activity、Service等组件来实现功能。 二、人体检测技术 1. OpenCV集成:项目中使用了OpenCV库进行图像处理和计算机视觉计算。OpenCV是一个跨...

    android双缓冲技术实例详解

    因此,在进行Android游戏开发时应尽量使用SurfaceView而不要使用View,这样的话效率较高,并且SurfaceView的功能也更加完善。为了更容易的了解双缓冲技术,下面介绍用View实现双缓冲的方法。 在此需要说明一下,双...

    Android代码-MediaUtils

    A demo of record audio and video about Android 一个在 Android 上实现录像和录音功能的小例子。 GitHub 地址:https://github.com/Werb/MediaUtils 也可直接点击下载体验 Android 的 MediaRecorder 相信用过的...

    Android应用源码之一个涂鸦还有画矩形 圆形的小Demo-IT计算机-毕业设计.zip

    3. **自定义View**:为了实现涂鸦和图形绘制,开发者通常会创建自定义View类,继承自`View`或`SurfaceView`。在这个Demo中,可能会有一个名为`DrawView`的自定义类,它重写了`onDraw()`方法来实现画布上的图形绘制。...

    VideoAudioStudy:视听研究

    在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView,SurfaceView,自定义 View 在 Android 平台使用 AudioRecord 和 AudioTrack API 完成音频 PCM 数据的采集和播放,并实现读写音频 wav 文件 在...

    安卓Android源码——SeeJoPlayer(视频播放器).zip

    2. **Surface和SurfaceView**:在Android中,`Surface`是用于在屏幕上显示图像数据的抽象层,而`SurfaceView`是一个可以显示视频的View,它提供了Surface的封装。SeeJoPlayer会利用SurfaceView来展示解码后的视频帧...

Global site tag (gtag.js) - Google Analytics