如何使 SurfaceView 透明并隐藏在 View Hierarchy 后面
How to make SurfaceView transparent and behind the ViewHierarchy
最近用SurfaceView创建了一个复杂的View,我觉得是complex.I发现SurfaceView的背景是黑色的,用SurfaceView.setZOrderOnTop()把它的背景改成透明的,但是有另一个问题是 Surfaceview 不在视图层次结构的后面。
我的目的是让 surfaceview 变得透明,在 viewhierarchy 的背后,有什么解决方案吗?
抱歉我的英语不好!
一些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.view.View hardwareAccelerator 默认是打开的,而且我将我的代码从 SurfaceView 移动到 android.view.View 来测试性能我发现的是性能足够!
最后,我没有找到解决这个问题的方法,而是换了一种方法来解决这个问题。
最近用SurfaceView创建了一个复杂的View,我觉得是complex.I发现SurfaceView的背景是黑色的,用SurfaceView.setZOrderOnTop()把它的背景改成透明的,但是有另一个问题是 Surfaceview 不在视图层次结构的后面。 我的目的是让 surfaceview 变得透明,在 viewhierarchy 的背后,有什么解决方案吗? 抱歉我的英语不好!
一些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.view.View hardwareAccelerator 默认是打开的,而且我将我的代码从 SurfaceView 移动到 android.view.View 来测试性能我发现的是性能足够! 最后,我没有找到解决这个问题的方法,而是换了一种方法来解决这个问题。