0

我正在制作一个小游戏,目前它的工作方式有点被动(它只在用户按下按钮时运行并执行操作)。

但我想在它上面添加动画,所以我有这种层,其中底层是带有按钮和文本的普通视图,在它上面我有一种表面视图,运行带有线程的画布动画。

我还希望制作这两个单独的 java 文件,因为我知道每个活动一次代表一个视图,我可以如何制作我的底视图,调用在他之上添加表面视图并让他将自己更新为他应该,而底部视图仍然是被动的?

4

2 回答 2

0

一个 Activity 代表一个 View 是对的,但这并不意味着您不能堆叠它们。您可以使用 aweight_sum为 1 的 LinearLayout,添加权重为 0.8 的 SurfaceView,添加权重为 0.2 的 BottomView。这将允许您单独处理它们

于 2012-06-24T00:33:20.417 回答
0

Activity 不是 View,而是包含 View 的集合。您需要的是一个单一的活动,但将布局分成两个部分。然后,您可以说有一个包含 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.
于 2012-06-24T00:37:33.267 回答