导读 8月科学教育网小李来为大家讲解下。surfacechanged,surfacechanged怎么样)这个很多人还不知道,现在让我们一起来看看吧!(1)surfaceChan...

8月科学教育网小李来为大家讲解下。surfacechanged,surfacechanged怎么样)这个很多人还不知道,现在让我们一起来看看吧!

(1)surfaceChanged是一个Android框架下的生命周期函数。它由Android View中的OnSurfaceChanged()方法调用,其中在View中界面发生变化时,会被调用此函数,比如说:当一个View对象的尺寸、模式或者其他位置发生变化时,就会被调用。

(2)surfaceChanged会在一个Activity的onCreate函数之前被调用。这里的onCreate函数会在类中的onStart或onResume之前被调用,并激活Activity的界面发生变化时,就会触发surfaceChanged函数的调用。

(3)surfaceChanged的功能主要是绘制UI的内容,它会在发生变化的时候,调用回调函数对当前的View对象进行绘制,使得生成相应的内容展示出来。

(4)surfaceChanged也可以在其他一些特定场景下触发,比如:当一个App处于后台时,此时后端的内容发生变化,此时可以通过surfaceChanged函数调用回调函数来更新前端的内容,以刷新当前的UI界面。

(5)surfaceChanged的功能比较多,在主要用于一些细节处理,比如图片显示,缩放,旋转等,而不是大改动或者是局部大范围的变更都是不推荐使用此函数的。

Surfacechanged方法是Android中SurfaceView的回调方法,当Surface的参数发生变化时调用。它的代码结构如下:

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h)

{

//在此处可以添加自己的代码

}

这是一个由Android系统自动调用的函数,不能主动去调用它。surfaceChanged()函数的功能主要有两个:一是在屏幕大小发生变化时,可以修改视会当中显示的内容;二是当SurfaceView被暂停时(比如有别的Activity获取焦点),可以暂停内容的更新以节约资源。

(一)当屏幕发生变化时

当屏幕发生变化,比如屏幕被旋转,surfacechanged()函数会被调用,其参数有三个:holder,format和w/h。

holder代表当前SurfaceView的持有者。format代表当前SurfaceView的格式(比如RGB888)。而w/h分别代表当前的宽和高,可以通过它们获得屏幕的参数,接着我们就可以根据屏幕的大小来调整对应的内容,比如在width大于height的情况下显示横屏内容,反之则显示竖屏内容。

(二)暂停SurfaceView时

当SurfaceView被暂停时,根据SurfaceView.paused字段是否为true来判断,如果为true,说明当前SurfaceView被暂停:这时候就可以停止一些耗时的更新任务,比如结束循环、停止Timer等等,从而节省资源。

综上所述,surfaceChanged()方法在屏幕发生变化时和SurfaceView被暂停时,都会被Android系统自动调用,它的主要功能是在参数发生变化时调整内容和暂停耗时的更新任务以节约资源。

本文surfacechanged,surfacechanged怎么样)到此分享完毕,希望对大家有所帮助。