【问题标题】:Android: having an activity call another separate java file, which represents the on top animationAndroid:有一个活动调用另一个单独的java文件,它代表顶部动画
【发布时间】:2012-06-23 23:03:55
【问题描述】:

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

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

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

【问题讨论】:

    标签: android view surfaceview


    【解决方案1】:

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

    【讨论】:

    • 重量到底是什么意思?这就像说我的表面视图将 80% 超出屏幕(他的父母)和底部视图 20%?
    • 完全正确。您可以为视图提供类似 prozentual 的尺寸
    【解决方案2】:

    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.
    

    【讨论】:

    • 所以你的意思是,我需要为父 LinearLayout 进行 3 个活动(目前参考你的示例),唯一的目标是创建他自己,并且有两个单独的活动,对于实际真正的活动的surfaceView和Bototm Linear布局,让父Linearlayout将他的surfaceView和LinearLayout中的每一个的视图设置为其他2个活动? (我希望我很清楚 xD)
    • 嗨,Dan,我已经更新了我的答案,如果这是您的问题,请告诉我,如果不是,您能否进一步澄清您的问题?
    猜你喜欢
    • 2021-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 2011-10-18
    • 2011-02-08
    • 2011-05-19
    相关资源
    最近更新 更多