Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
6年前关闭。
当视图的大小发生更改时,将调用
这实际上是如何发生的以及何时使用这两个...
您还可以提供关于View框架的教程的一些链接,以更好地理解Android开发人员以外的其他人吗?
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
6年前关闭。
onsizechanged()
和surfacechanged()
方法之间有什么区别?当视图的大小发生更改时,将调用
onsizechanged()
;当表面发生更改时,将调用surfacechanged()
;因此,当发生大小更改时,将同时调用这两种方法。这实际上是如何发生的以及何时使用这两个...
您还可以提供关于View框架的教程的一些链接,以更好地理解Android开发人员以外的其他人吗?
最佳答案
首先,这两种方法完全不同,即使在Surfaceview的情况下将它们一起调用也是如此。
onSizeChanged通常是View对象的回调方法。
在对表面进行任何结构更改(格式或大小)后,立即调用此方法。此时,您应该更新表面中的图像。在surfaceCreated(android.view.SurfaceHolder)之后,始终至少调用一次此方法。
onSurfaceChanged是Surfaceholder接口的回调方法。许多View对象(GLSurfaceView,SurfaceView)实现的功能。
当此视图的大小更改时,在布局过程中调用此方法。如果只是将您添加到视图层次结构中,则会使用旧值0进行调用。
现在,从技术上讲,两者将同时被调用。但是如果更改表面对象的PixelFormat,将单独调用onSurfaceChanged
。
关于android - onsizechanged和surfacechanged之间的区别? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17513940/
10-10 07:05