java - Android Studio 游戏不使用整个 Android 显示屏

标签 java android android-studio canvas

开始游戏后,游戏不会使用整个 Android 屏幕。这种情况仅发生在游戏本身中,如图像所示,因为用户无法到达屏幕底部。已尝试找到解决方案,但我尝试过的所有尝试似乎都不起作用。不确定要提供哪个代码,因此不想提供大量代码。让我知道要发布哪个代码。任何帮助,将不胜感激。

Image of game

package com.example.spaceattack;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.os.Handler;

import java.util.Timer;
import java.util.TimerTask;

public class MainActivity extends AppCompatActivity
{
    private SpaceShipView gameView;
    private Handler handler = new Handler();
    private final static long Interval = 30;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        gameView = new SpaceShipView(this);
        setContentView(gameView);

        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run()
            {
                handler.post(new Runnable() {
                    @Override
                    public void run()
                    {
                        gameView.invalidate();

                    }
                });
            }
        }, 0, Interval);

    }
}

最佳答案

您需要通过获取应用程序的窗口并设置以下标志来隐藏状态/系统:

更多来自 Documentation

// hide status bar
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);

} else {
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
}

所以在你的代码中:

public class MainActivity extends AppCompatActivity
{
    private SpaceShipView gameView;
    private Handler handler = new Handler();
    private final static long Interval = 30;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        gameView = new SpaceShipView(this);
        setContentView(gameView);

        // hide status bar
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
            mUiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
            getWindow().getDecorView().setSystemUiVisibility(mUiOptions);
        } else {
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        }

        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run()
            {
                handler.post(new Runnable() {
                    @Override
                    public void run()
                    {
                        gameView.invalidate();

                    }
                });
            }
        }, 0, Interval);

    }
}

关于java - Android Studio 游戏不使用整个 Android 显示屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61062621/

相关文章:

android - 如何将 PayPal sdk 与 Gradle Android 集成

php - 在 Android 中使用 JSON 列表数组

android - 使用gradle作为android构建系统时如何直接获取Android Library的源代码

android - 在 Android studio 中使用 -Xlint 重新编译

Java 注释 - 如何在处理器中获取属性和类

安卓数据库为空

android - Android中的非传统GUI设计

Spring imap-idle-channel-adapter 基于 Java 的配置

java - 使用迭代器模式java使用一个循环打印出两个数据结构

java - 使用正弦和余弦绘制一个有角度的正方形