您好、欢迎来到现金彩票网!
当前位置:PC蛋蛋 > 允许重画 >

SurfaceHolder API

发布时间:2019-07-07 20:08 来源:未知 编辑:admin

  不包含原生数据Surface,Surface用到的数据由其他对象提供。如果设置这种类型则就不能调用lockCanvas来获取Canvas对象了

  例如:当使用SurfaceView, Surface的持有者直到该View隶属于当前窗口管理器,确认布局大小和屏幕的位置后才进行创建,你通常需要实现Callback.surfaceCreated寻找出可用的Surface。

  注意,如果你通过另外的线程直接访问Surface,关键在于你正确的实现了Callback.surfaceCreated和Callback.surfaceDestroyed函数来确保你访问的线程的Surface是可用的,有效的,当一个线程正在使用该Surface,将不能得到释放,销毁。

  这个方法的目的是用于经常需要直接访问Surface对象的框架(通常是通过本地代码),在设计API时总使用SurfaceHolder来改变Surface,而不是Surface对象本身。一个经验规则是应用程序代码不能调用该方法

  注意:不能修改发挥矩形区域大小,这是唯一安全的调用从SurfaceView的窗口线程,否则就需要放在lockCanvas()里面调用。

  开始编辑surface的像素,返回可以用来画到表面的位图的Canvas。如果表面尚未建立或无法进行编辑将返回null。通常需要实现Callback.surfaceCreated找出Surface时方可使用。

  Surface的内容再从调用unlockCanvas()和lockCanvas(),之间被保存,为此,在Surface区域内的没有个像素都将被画出,仅一个例外是当脏矩形被指定的时候,非脏像素将会被保存。

  如果没有返回null值,这个函数在内部直到调用unlockCanvasAndPost(Canvas)函数,才持有锁,来防止SurfaceView在绘制的时候被创建,销毁,或者修改surface,因为当调用Callback.surfaceDestroyed你不需要创建一个特殊的同步绘制线程 所以你能更方便的直接访问这个Sufrace

  和lockCanvas()一样,但允许指定一个脏矩形,再这个矩形的每个像素都必须被绘制,脏矩形外的像素将被保存直到下次调用lockCanvas()。

  使surface固定大小,他将永远不能该表大小,当和SurfaceView一起工作时,这必须被同一运行的SurfaceView的窗口线程来调用

  设置surface所需的像素格式。默认是不透明的,当和SurfaceView一起工作时,这必须被同一运行的SurfaceView的窗口线程来调用

  当surface被显示的时候是否启用或禁用屏幕保持打开状态,默认是禁用,允许屏幕关闭,启用选项有效时,可以安全的调用任何线程。

  在surface完成编辑像素,该函数调用后,surface的当前像素就会在屏幕上显示,但是它的数据会丢失,尤其是没有保证surface数据保持不变的时候再次调用lockCanvas()。

  在用SurfaceView进行游戏开发过程中,用到SurfaceHolder来处理它的Canvas上画的效果和动画是必不可少的。用于控制表面,大小,像素等。其中特别要注意以下的几个函数:

  //锁定画布,一般在锁定后就可以通过其返回的画布对象Canvas,在其上面画图等操作了。

  //锁定画布的某个区域进行画图等..因为画完图后,会调用下面的unlockCanvasAndPost来改变显示内容。

  //相对部分内存要求比较高的游戏来说,可以不用重画dirty外的其它区域的像素,可以提高速度。

  在android中开发游戏,一般来说,或想写一个复杂一点的游戏,是必须用到SurfaceView来开发的。

  经过这一阵子对android的学习,我找到了自已在android中游戏开发的误区,不要老想着用Layout和view去实现,不要将某个游戏

  中的对象做成一个组件来处理。应该尽量想着在Canvas(画布)中画出游戏戏中的背景、人物、动画等...

  SurfaceView提供直接访问一个可画图的界面,可以控制在界面顶部的子视图层。SurfaceView是提供给需要直接画像素而不是使用

  窗体部件的应用使用的。Android图形系统中一个重要的概念和线索是surface。View及其子类(如TextView, Button)

  要画在surface上。每个surface创建一个Canvas对象(但属性时常改变),用来管理view在surface上的绘图操作,如画点画线。

  使用的SurfaceView的时候,一般情况下还要对其进行创建,销毁,改变时的情况进行监视,这就要用到SurfaceHolder.Callback.

  Android视图SurfaceView的使用绘制圆形进度条。博文来自:坚持

  双缓冲机制不管是什么操作系统,都有个“图像数据缓冲区”,存放颜色数据,每隔一段时间,把这些颜色数据投射到显示器上,我们就看到了各种各样的画面。对于应用程序来说,只需要把想要展示的内容存放到“图像数据缓...博文来自:super_wk的博客

  开发一个播放器,在播放视频时,需要按视频的原始比例进行视频比例的设置,我在RelativeLayout中方surfaceview控件,布局设置的分辨率为1280x720,surfaceview在代码中论坛

  Surface类自1.0版本开始就是公共API的一部分了。它的描述简单地说,“处理由屏幕合成器管理的原始缓冲区”。该陈述在最初编写时是准确的,但在现代系统上却与事实相去甚远。Surface表示一个常常...博文来自:tq08g2z的专栏

  转载请包含网址:一、SurfaceSurface就是“表面”的意思。在SDK的文档中,对S...博文来自:玄机逸士的专栏

  前言摘自《Android群英传》Android提供了View进行绘图处理,View可以满足大部分的绘图需求,但在某些时候也会心有余而力不足。我们知道,View通过刷新来重绘视图,Android系统通过...博文来自:weixin_34072637的博客

  QDialog setFixedSize 后马上 exec_() 刚刚设置的大小并不马上生效,需要下次显示的时候才生效,怎么解决?论坛

  我写了一个类继承surfaceview类来实现视频播放。在类中使用MediaPlayer来控制播放。然后在activity中来使用这个类。但是发现在屏幕上surfaceview的大小可以控制,但是视频论坛

  SurfaceView介绍  通常情况程序的View和用户响应都是在同一个线程中处理的,这也是为什么处理长时间事件(例如访问网络)需要放到另外的线程中去(防止阻塞当前UI线程的操作和绘制)。但是在其他...博文来自:ShanYu1198124123的博客

  /**在开发Android应用的时候,如果需要调用摄像头获取拍摄的照片,除了通过Intent调用系统现有相机应用拍摄照片之外,还可以通过直接调用Camera硬件去去获取摄像头拍摄的照片*/自定义一个C...博文来自:coding渣渣

  今天希望进行的改动是对onPictureTaken()方法进行改动以实现照片存储在sdcard里,但在这之前,更重要的是进行程序的重构,用《深入浅出Android》作者Gasolin的话说:“可运作的...博文

  本文介绍多媒体的音频和视频播放。播放音频和视频的源文件可以是一下三种:源文件(即res/raw下或assets下)文件系统(即sdcard)流媒体(即网络)1.播放音频文件播放音频文件可以用Media...博文来自:teletian的专栏

  1.加载长图,如新浪微博里面的长微博,这种图,特别大,如果项目中使用的图片缩放控件,要注意所使用的第三方加载(如:Glide,Picasso),因其内部已经做过压缩处理,导致长图特别模糊,单独某张卡片...博文来自:merbn的博客

  在Android系统中,有一种特殊的视图,称为SurfaceView,它拥有独立的绘图表面,即它不与其宿主窗口共享同一个绘图表面。由于拥有独立的绘图表面,因此SurfaceView的UI就可以在一个独...博文来自:aa841538513的博客

  步骤:1、定义SurfaceView显示预览2、在SurfaceHolder的回调中用Camera对象启动预览3、调用MediaRecorder来录像  实现录像开始和停止功能,顶部显示录像时间代码如...博文来自:浅浅的安卓资料库

  初学者今天接触了回调接口,大致是上层类a中引用的下层类b通过接口c回调类a的方法d,再看surfaceholder.addcallback(surfaceview)后可以使用holder中的方法surfacechanged,那在这里 谁是abcd,忘解答,新人,可能理解存在错误问答

  我遇到这个问题的场景是:页面一个大的SurfaceView.想要通过相机实时预览捕获到的场景。页面进入的时候动态获取相机权限,如果有权限则直接绑定holder surfaceHolder=surfac...博文来自:a872822645的博客

  在Android系统中,有一种特殊的视图,称为SurfaceView,它拥有独立的绘图表面,即它不与其宿主窗口共享同一个绘图表面。由于拥有独立的绘图表面,因此SurfaceView的UI就可以在一个独...博文来自:老罗的Android之旅

  jquery/js实现一个网页同时调用多个倒计时(最新的)nn最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦!nnnn//jsn...博文来自:Websites

  最近比较有空,大四出来实习几个月了,作为实习狗的我,被叫去研究Docker了,汗汗!nnDocker的三大核心概念:镜像、容器、仓库n镜像:类似虚拟机的镜像、用俗话说就是安装文件。n容器:类似一个轻量...博文来自:我走小路的博客

  本篇文章是根据我的上篇博客,给出的改进版,由于时间有限,仅做了一个简单的优化。相关文章:将excel导入数据库2018年4月1日,新增下载地址链接:点击打开源码下载地址十分抱歉,这个链接地址没有在这篇...博文来自:Lynn_Blog

http://ammanphoto.com/yunxuzhonghua/156.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有