Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? 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