SurfaceView

部署运行你感兴趣的模型镜像

继承自View


已知的直接子类有GLSurfaceView、VideoView。
提供一个专门的绘制表面嵌入到view层次结构中。你可以控制表面的格式,比如说它的大小;SurfaceView负责将surface放到屏幕正确的位置。surface是在Z周轴放置的,所以它在持有SurfaceView的窗口下面;SurfaceView在它的窗口上打一个洞来允许它的surface显示。View的层级结构和Surface将负责正确的合成,保证同一层的SurfaceView能够正常的出现在它的上面。这用于叠加放置,例如将一个按钮放在Surface上面,不过请注意这可能会影响性能,因为一个完全透明的组件在每次Surface改变时都会执行。
透明区域使Surface可见是基于在view层次结构的布局位置。如果使用布局后改变属性在SurfaceView顶层绘制一个姊妹view,这个view可能不会很好的与这个surface合成。
访问SurfaceHolder接口提供的surface,可以通过getHolder()方法得到。
Surface将会在SurfaceView的窗口可见时创建;你应该实现surfaceCreated(SurfaceHolder)和surfaceDestroy(SurfaceHolder)来监听窗口出现和消失时Surface的创建和销毁。
这个类的目的是提供一个surface,在这里可以用一个子线程来渲染屏幕。如果你想使用它,那你应该注意一些线程语法:

  • 所有的SurfaceView和SurfaceHolder.Callback方法都必须在运行SurfaceView窗口的线程调用(典型的就是应用的UI线程)。它们必须正确的同步一些状态,这些状态在绘制线程有可能被触碰改变。
  • 你必须确定在Surface有效时(在SurfaceHolder.Callback.surfaceCreated()和SurfaceHolder.Callback.surfaceDestroy()之间),绘制线程只触碰Surface。
public Method
voiddraw(Canvas canvas)手动用给定的画布渲染这个View (包括它的子view)。在这个函数调用之前view的layout必须已经完成。当自定义view的时候,重写onDraw(android.graphics.Canvas)方法,不要重写draw(Canvas canvas)方法。如果你一定要重写这个方法,调用父类的这个方法
booleangatherTransparentRegion(Region region)RootView使用它进行优化,当View层级结构包含一个或者多个SurfaceView时。SurfaceView总是考虑透明,但是它的孩子不会,因此所有的View对象从全局透明的区域移除不管透明区域,如果可见的view在这个点是不透明的返回true ;如果window有可能在view后面则返回false
SurfaceHoldergetHolder返回SurfaceHolder,用于访问和控制SurfaceView的Surface
voidsetSecure(boolean isSecure)控制是否保护Surface内容的安全,防止截屏或者非安全显示访问。注意这个必须在包含这个Surface的的window绑定到window manager之前设置
voidsetVisible(int visibility)设置这个view的使能状态
voidsetZOrderMediaOverlay(boolean isMediaOverlay)控制这个Surface放在同一个窗口的其它Surface的上面(但仍在窗口本身的下面)。注意,这个必须在包含这个Surface 的window绑定到windowManager之前设置。调用这个函数将会覆盖先前调用setZOrderOnTop(boolean)的设置
voidsetZOrderOnTop(boolean onTop)控制这个surface是否放到窗口的上面。通常surface都是在window下面,通过设置这个,可以使Surface放到window的上面。也就是说,没有内容的window,这个在surface顶部的SurfaceView将会可见。注意这个必须在包含surface的window绑定到windowManager之前调用。调用这个函数将会覆盖先前调用setZOrderMediaOverlay(boolean)的设置
Protected Method
voiddispatchDraw(Canvas canvas)draw方法调用它来绘制子View。它可能在子类重写来控制,只要在绘制它的孩子之前,但是在绘制完自己的view之后。
voidonAttachedToWindow()当view绑定窗口时调用。这时它有一个Surface并且将要开始绘制。注意,这个方法要保证在onDraw之前调用,而且它可能在第一次onDraw之前调用多次–包括在onMeasure(int,int)的前后。
voidonDetachedFromWindow()当view从窗口解绑时调用。这时将不再有Surface进行绘制
voidonMeasure(int widthMeasureSpec,int heightMeasureSpec)测量view和它的内容来决定它的测量宽和测量高。这个方法由measure(int,int)触发,应该在子类重写,这样可以对它的内容进行精确有效的测量。约定:在重写这个方法时,必须调用setMeasuredDimension(int,int)来存储这个View测量到的宽和高。不这样做将触发一个IllegalStateException,从measure(int,int)抛出。调用父类的onMeasure(int,int)是一个有效的使用方式。除非MeasureSpec允许一个大的size,否则基类measure的实现是背景的大小。子类应该重写onMeasure(int,int)来为它的内容提供更好的测量。如果这个方法重写,子类应该负责确定view的width和height的最小值。(getSuggestedMinimumHeight()和getSuggestedMinimumWidth())
voidonWindowVisibilityChanged(int visibility)当窗口包含的内容可见性变化时调用(在GONE,INVISIBLE,VISIBLE之间变化)。注意,这告诉你你的窗口对于window manager是否可见,但并不能告诉你是否是屏幕上的其他窗口挡住了你的窗口。

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

Nano-ESG数据资源库的构建基于2023年初至2024年秋季期间采集的逾84万条新闻文本,从中系统提炼出企业环境、社会及治理维度的信息。其构建流程首先依据特定术语在德语与英语新闻平台上检索,初步锁定与德国DAX 40成分股企业相关联的报道。随后借助嵌入技术对文本段落执行去重操作,以降低内容冗余。继而采用GLiNER这一跨语言零样本实体识别系统,排除与目标企业无关的文档。在此基础上,通过GPT-3.5与GPT-4o等大规模语言模型对文本进行双重筛选:一方面判定其与ESG议题的相关性,另一方面生成简明的内容概要。最终环节由GPT-4o模型完成,它对每篇文献进行ESG情感倾向(正面、中性或负面)的判定,并标注所涉及的ESG具体维度,从而形成具备时序特征的ESG情感与维度标注数据集。 该数据集适用于多类企业可持续性研究,例如ESG情感趋势分析、ESG维度细分类别研究,以及企业可持续性事件的时序演变追踪。研究者可利用数据集内提供的新闻摘要、情感标签与维度分类,深入考察企业在不同时期的环境、社会及治理表现。此外,借助Bertopic等主题建模方法,能够从数据中识别出与企业相关的核心ESG议题,并观察这些议题随时间的演进轨迹。该资源以其开放获取特性与连续的时间覆盖,为探究企业可持续性表现的动态变化提供了系统化的数据基础。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值