我正在制作一款小游戏,目前它有点被动地运行(它只会在用户点击按钮时运行并执行操作)。
但是我想在它上面添加动画,所以我有这种层,底层是带有按钮和文本的普通视图,在它上面我有一种运行画布动画的surfaceview有线程。
我也希望制作这两个独立的java文件,因为我知道每个活动一次代表一个视图,我是否可以如何使我的底层视图,调用添加在他之上的surfaceview并让他更新他自我应有,而底视仍然是被动的?
答案 0 :(得分:0)
一个Activity代表一个View是正确的,这并不意味着你不能堆叠它们。
您可以使用weight_sum
为1的LinearLayout,将SurfaceView的权重设置为0.8,将BottomView的权重设置为0.2。
这将允许您单独处理它们
答案 1 :(得分:0)
活动不是视图,而是包含一组视图。您需要的是单个活动,但将布局分为两个部分。然后,你可以说有一个包含SurfaceView的LinearLayout和包含你的按钮和文本的下面的另一个布局容器。然后,您应该能够独立于其下方的容器设置SurfaceView的动画,这看起来就像您希望的那样。
例如,像;
<LinearLayout android:id="@+id/parent">
<SurfaceView android:id="@+id/surface">
</SurfaceView>
<LinearLayout android:id="@+id/controls">
<!-- Buttons and text -->
</LinearLayout>
</LinearLayout>
然后在Activity的onCreate()方法中,您将:
setContentView(R.layout.main_layout);
surfaceView = findViewById(R.id.surfaceView);
// Now you should be able to animate the surfaceView independent to the rest of the elements in the activity
surfaceView = findViewById(R.id.controls);
// Rest of initialization code.