如何使SurfaceView透明并位于ViewHierarchy的后面

问题描述 投票:0回答:1

[最近,我使用SurfaceView创建了一个复杂的View,我认为它很复杂。我发现SurfaceView的背景是黑色的,并通过使用SurfaceView.setZOrderOnTop()将其背景更改为透明。但是还有一个问题是Surfaceview没有落后于视图层次结构。我的目的是使表面视图变得透明并且在视图层次结构的背后,对此有什么解决方案吗?对不起,我的英语不好!

一些这样的xml布局代码

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".SurfaceViewActivity">

    <com.example.testproject.customview.AnimationView
        android:id="@+id/animationview"
        android:layout_width="400dp"
        android:layout_height="400dp"
        android:layout_gravity="center"
        android:background="@android:color/transparent"
        />

    <ImageView
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:background="@null"
        android:layout_gravity="center"
        android:visibility="visible"
        android:src="@drawable/ic_launcher_foreground"
        />

</FrameLayout>

'AnimationView'是SurfaceView的扩展

android surfaceview transparent
1个回答
0
投票

我认为我的开始方向是错误的,因为android.view.View hardwareAccelerator默认处于打开状态,而且我将代码从SurfaceView移至android.view.View以测试性能,发现性能已经足够了!最后,我没有找到解决这个问题的方法,而是改变了解决这个问题的方法。

© www.soinside.com 2019 - 2024. All rights reserved.