SurfaceView的疑问,急

发布于 2021-11-10 02:29:36 字数 1461 浏览 871 评论 7

请教: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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

南汐寒笙箫 2021-11-10 16:06:30

问题补充:
在onResume中可以获得SurfaceView中的那个绘制线程

醉生梦死 2021-11-10 16:06:24

首先,谢谢你的回答:) 那 surface何时建立完毕?

爱的故事 2021-11-10 16:04:03

对了,你有没有在构做方法上加holder.addCallback(this);这句

长安忆 2021-11-10 15:59:40

加上了 :)

冬天旳寂寞 2021-11-10 15:53:06

这就怪了,应在setContentView完毕调用的

葬花如无物 2021-11-10 15:42:40

却是是在onCreate中的setContentView之后调用的! 在onResume中可以获得SurfaceView中的那个绘制线程,不知道是什么原因

爱的故事 2021-11-10 15:12:56

就是在
surface建立完毕时就会调用,估计是线程同步的问题吧

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文