`
QCheng5453
  • 浏览: 16575 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

SurfaceView的使用

 
阅读更多

SurfaceView的使用

 

先贴上几个地址:

http://www.cnblogs.com/technology-fans/archive/2012/02/29/2373928.html  这里面比较详细地介绍了SurfaceView的原理。

http://www.cnblogs.com/devinzhang/archive/2012/02/03/2337559.html  这里面介绍了SurfaceView的使用方法。

http://www.oschina.net/code/snippet_54100_1423  这里面介绍了SurfaceView的一个基本应用。



SurfaceView继承自View类,感觉上在游戏开发中对于SurfaceView的使用比较常见,SurfaceView的使用基本离不开Canvas控件。

SurfaceView实际上提供了一个图形界面,这个界面上可以用来画图,可以用来播放视频,也可以来显示摄像头图像。SurfaceView可以让开发者在另外的线程中修改UI界面。


1、首先在布局文件中设置一个SurfaceView。

2、SurfaceHolder用来控制SurfaceView,可以通过SurfaceHodler为SurfaceView提供回调函数,使SurfaceView在创建、改变、销毁时进行回调。

 

 

<SurfaceView 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/surface"/>

 

public class _tempTest_surfaceViewActivity extends Activity {
	private SurfaceView surfaceView;
	private SurfaceHolder sfh;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        surfaceView = (SurfaceView)findViewById(R.id.surface);
        sfh = surfaceView.getHolder();  //获取SurfaceHodler
        sfh.addCallback(new Callback() {  //为SurfaceHolder添加回调函数
			
			@Override
			public void surfaceDestroyed(SurfaceHolder holder) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void surfaceCreated(SurfaceHolder holder) {
				// TODO Auto-generated method stub
				Canvas canvas = sfh.lockCanvas(null);   //为Surface上锁
				canvas.drawColor(Color.BLACK);             //修改UI
				sfh.unlockCanvasAndPost(canvas);        //解锁Surface并更新UI
				
			}
			
			@Override
			public void surfaceChanged(SurfaceHolder holder, int format, int width,
					int height) {
				// TODO Auto-generated method stub
				
			}
		});
        
    }
}
 

 

分享到:
评论

相关推荐

    Android SurfaceView使用Demo

    **Android SurfaceView 使用详解** `SurfaceView` 是 Android 系统提供的一种特殊的视图组件,它允许开发者在应用程序中创建高性能的图形界面,比如游戏、视频播放器等需要连续更新图像的应用。`SurfaceView` 提供...

    SurfaceView使用示例

    下面我们将详细讲解SurfaceView的使用以及在实现一个绘图板时的关键知识点。 首先,SurfaceView包含两个主要组成部分:Surface和View。Surface是实际用于绘图的后台缓冲区,而View则负责管理Surface在屏幕上的显示...

    Android之SurfaceView使用总结中文最新版本

    本文档主要讲述的是Android之SurfaceView使用总结;SurfaceView是View类的子类,可以直接从内存或者DMA等硬件接口取得图像数据,是个非常重要的绘图视图。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来...

    android SurfaceView 使用示例 why SurfaceView上 不可以用控件的轻微解释

    4. 使用Layout嵌套:可以将SurfaceView和控件放入一个单独的FrameLayout或RelativeLayout中,这样可以确保它们在同一个层级上,但仍然需要注意由于SurfaceView的特殊性,控件可能需要手动调整位置。 总的来说,...

    Android中SurfaceView的使用

    4. **同步机制**:SurfaceView使用了一种称为“ Fence ”的同步机制来确保数据正确地呈现在屏幕上。当后台线程完成绘制并提交后,Fence会确保这些改变在用户看到之前已经完成。 5. **性能优化**:由于SurfaceView的...

    SurfaceView画图

    如何使用SurfaceView: 1. **添加SurfaceView到布局**:在XML布局文件中添加SurfaceView元素,并设置相应的属性。 2. **获取SurfaceHolder**:在Activity的`onCreate()`方法中,通过`SurfaceView.getHolder()`获取...

    SurfaceView

    文件名`szt_SurfaceView`可能包含的是一个关于SurfaceView使用示例的代码或文档,通过学习和分析这个例子,可以更好地理解和掌握SurfaceView在实际项目中的运用。 总之,SurfaceView是Android游戏开发中的重要工具...

    实例3--使用surfaceView

    《实例3--使用SurfaceView》 SurfaceView是Android系统中一个非常重要的视图组件,它在处理复杂的图形绘制和视频播放等高性能应用时扮演着关键角色。本实例将深入探讨SurfaceView的工作原理及其使用方法。 1. **...

    SurfaceView的基本用法以及简单实战

    通过理解SurfaceView的工作原理和使用方法,开发者可以创建出流畅、高性能的Android应用程序,尤其适合处理动态内容和需要高效绘图的场景。在实际项目中,结合其他Android组件和框架,SurfaceView可以发挥更大的作用...

    (无法运行)安卓斗地主简单实现发牌洗牌排序等SurfaceView的使用等等知识点.rar

    这个压缩包文件中的内容可能包括了斗地主游戏的基本实现、发牌逻辑、洗牌算法、界面绘制以及Android的SurfaceView使用等多个关键知识点。下面将详细阐述这些领域的核心概念。 1. **斗地主游戏逻辑**: 斗地主是一...

    android surfaceView 双缓冲

    android使用双缓冲辨析及surfaceview使用例子

    SurFaceView组合图形移动,适用于游戏

    提到关注CSDN博客,说明那里有更详细的SurfaceView使用教程和示例代码,可以帮助读者深入理解并实践SurfaceView在游戏开发中的应用。 综上所述,SurfaceView是Android游戏开发中一个重要的工具,通过其特性可以...

    Android使用SurfaceView实现墨迹天气的风车效果-IT计算机-毕业设计.zip

    本示例“Android使用SurfaceView实现墨迹天气的风车效果”是一个很好的学习资源,适用于毕业设计或论文研究。这个项目主要展示了如何利用Android的SurfaceView组件来创建类似墨迹天气应用中的风车动画效果。下面将...

    AndroidApp中使用SurfaceView制作多线程动画的实例讲解.docx

    ### Android App中使用SurfaceView制作多线程动画的实例讲解 #### SurfaceView的定义与应用场景 在Android开发中,为了确保应用的流畅性和响应性,通常需要将耗时操作(如网络请求)放在非UI线程中进行。然而,...

    android SurfaceView做二维码扫描源码

    总的来说,实现"android SurfaceView做二维码扫描源码"涉及到Android的SurfaceView使用、摄像头控制、图像处理以及第三方库的集成等多个技术点。理解并掌握这些知识点,才能开发出高效稳定的二维码扫描应用。

    View与SurfaceView游戏框架Demo

    在Android开发中,View和SurfaceView是两种常用的用于在屏幕上绘制图形和处理用户交互的组件。...通过理解它们的工作原理和使用场景,开发者可以根据项目需求选择合适的组件,构建出流畅、互动性强的游戏框架。

    Android SurfaceView 多线程 滑块

    因此,SurfaceView使用了多线程技术,将耗时的绘图任务移到后台线程,避免阻塞主线程,提高用户体验。 3. **滑块组件**:这个示例中的滑块可能是一个自定义控件,用户可以通过滑动来选择一组按钮。实现这种效果可能...

    surfaceView用法例子

    下面是一个简单的SurfaceView使用例子: 首先,创建一个继承自SurfaceView的类,并实现SurfaceHolder.Callback接口: ```java public class MySurfaceView extends SurfaceView implements SurfaceHolder.Callback...

    SurfaceView-Sample-master.zip_android_surfaceview

    "说明.txt"可能详细介绍了如何使用这个示例代码以及其中的关键概念,而"SurfaceView-Sample-master"很可能是项目源码,包含了具体的SurfaceView使用示例。 源码分析: - `MainActivity.java`:通常这里是应用的主...

Global site tag (gtag.js) - Google Analytics