Android 如何将视图作为背景添加到surfaceView?
您好,我目前正在工作的游戏,其中包含的音频效果在surfaceView的背景可视化视图Android 如何将视图作为背景添加到surfaceView?,android,view,background,surfaceview,Android,View,Background,Surfaceview,您好,我目前正在工作的游戏,其中包含的音频效果在surfaceView的背景可视化视图 surfaceView包含实际游戏。 我发布了一些代码片段:- main.xml <FrameLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_margin="5dp" android:layout_weight="1" android:back
surfaceView包含实际游戏。
我发布了一些代码片段:-
main.xml
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_margin="5dp"
android:layout_weight="1"
android:background="#000" >
<co.ardor.visualizer.VisualizerView
android:id="@+id/visualizerView"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</co.ardor.visualizer.VisualizerView>
</FrameLayout>
我的VisualizerView运行良好,因此如何将其作为背景添加到SurfaceView(实际运行的游戏)。我遇到了一个问题,“如何将视图添加为SurfaceView的背景?”
或其他更好的解决方案。。
Thx提前..您可以查看的一种可能性是检索
视图的
绘图缓存位图
,并将位图
添加到表面视图
,绘制在游戏内容后面
检索位图
:
myVisualizerView.setDrawingCacheEnabled(true);
mVisualizerBitmap = Bitmap.createBitmap(myVisualizerView.getDrawingCache());
myVisualizerView.setDrawingCacheEnabled(false);
在SurfaceView的onDraw(…)中绘制位图
:
如果您必须在游戏的每一帧检索位图,我不确定这在性能方面是否是一个好主意,但它可能值得探索。尝试使用LinearLayout添加它们, 并使用以下方法使它们相互重叠:
android:layout_alignLeft="..."
android:layout_alignTop="..."
不能将视图添加为背景。您必须将其设置为活动的内容视图谢谢Gunnar的回复,但这不利于实时声音可视化。。。但你的想法给我留下了深刻的印象。你看过这个吗:-?我从这个链接得到了解决方案。但你建议的答案也很好。谢谢
canvas.drawBitmap(mVisualizerBitmap, //other params);
android:layout_alignLeft="..."
android:layout_alignTop="..."