不可见的SurfaceView使其父黑色

时间:2014-08-26 12:59:16

标签: android surfaceview

我在活动布局中使用SurfaceView时遇到问题。这是XML的一部分:

<LinearLayout...
    android:background="@drawable/background_image">
    ...
    <RelativeLayout
        android:id="@+id/game_viewcontainer"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.85">

        <!-- SurfaceView will be placed here -->

     </RelativeLayout>
</LinearLayout>

正如您所看到的,SurfaceView(实际上是它的子类)并没有直接放入XML中,但我稍后会从代码中添加它,这样:

  1. 在活动onCreate()中,我实例化SurfaceView,将其设置为INVISIBLE。我现在不想展示它。
  2. 我致电addView()将表面放入game_viewcontainer
  3. 后几行
  4. 呈现活动。
  5. 几秒钟后,我将表面切换为VISIBLE。
  6. 问题在于此序列适用于Android 4+的某些测试设备,但它在Android 2.2中引入了一个问题:在第2步和第4步之间,game_viewcontainer 完全黑色 (它没有显示background_image)。然后,在将SurfaceView设置为VISIBLE后,问题就消失了。

    为什么会这样?

0 个答案:

没有答案