SurfaceView的疑问,急
请教:SurfaceView.CallBack的surfaceCreated什么时候被调用?
MainActivity 代码:
public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.main); MySurfaceView mySurfaceView = (MySurfaceView)this.findViewById(R.id.sv); MyThread thread = mySurfaceView.getThread(); } }
mySurfaceView.getThread()为空,我是在surfaceCreated中创建的Thread,不是在MySurfaceView中实例化的,打log发现surfaceCreated并没有被调用。以下是main.xml代码:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@android:color/white" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="Main Thread" /> <com.smalant.ui.c3_app.MySurfaceView android:id="@+id/sv" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout>谢谢指点
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
问题补充:
在onResume中可以获得SurfaceView中的那个绘制线程
首先,谢谢你的回答:) 那 surface何时建立完毕?
对了,你有没有在构做方法上加holder.addCallback(this);这句
加上了 :)
这就怪了,应在setContentView完毕调用的
却是是在onCreate中的setContentView之后调用的! 在onResume中可以获得SurfaceView中的那个绘制线程,不知道是什么原因
就是在
surface建立完毕时就会调用,估计是线程同步的问题吧