Android: SurfaceView - PullRequest
       23

Android: SurfaceView

0 голосов
/ 07 февраля 2012

У меня есть SurfaceView с setZOrderOnTop(true). Этот флаг необходим для прозрачного фона SurfaceView во время процесса рисования.

Как отобразить любой вид перед ним?

Ответы [ 2 ]

0 голосов
/ 20 января 2016

По моему опыту, это все еще работает. Но если вы используете RelativeLayout, это будет ужасно.

<FrameLayout 
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.applicationtest.MainActivity" >
    <SurfaceView
        android:id="@+id/surfaceView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ads:adSize="SMART_BANNER"
        ads:adUnitId="@string/banner_ad_unit_id">
    </com.google.android.gms.ads.AdView>
    <LinearLayout
        android:layout_marginTop="50sp"
        android:orientation="vertical"
        android:background="#44444444"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
        <TextView
            android:text="ttttttttttttttttttttt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <TextView
            android:text="ttttttttttttttttttttt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <TextView
            android:text="ttttttttttttttttttttt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>

</FrameLayout>

WallPaperService используется SurfaceView. Так что нет никаких причин, по которым ни один вид не может быть на вершине SurfaceView ... (я думаю ??)

0 голосов
/ 07 февраля 2012

SurfaceViews не предназначены для совмещения с другими видами. Как описано в документе для setZOrderOnTop , после установки этого режима никакое другое содержимое окна не будет отображаться поверх SurfaceView.

Если вы хотите сделать композитинг, вам придется сделать это самостоятельно, за кадром, а затем вывести результаты в SurfaceView.

...