首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法创建全屏

无法创建全屏
EN

Stack Overflow用户
提问于 2017-09-30 06:52:55
回答 3查看 73关注 0票数 0

我正在从这个教程中学习Android:

http://gamecodeschool.com/android-projects/,但是有一个问题。在某些游戏中,您需要在XML文件中设置全屏分辨率。我正在做正确的教程,但我的游戏崩溃时,我安装在一个设备。只是因为这个XML文件。我很生气,我试着自己学习,但是我总是有这个全屏的bug。这是代码

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>

代码语言:javascript
复制
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme" >
    <activity android:name=".MainActivity"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:screenOrientation="landscape">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-09-30 08:15:05

尝尝这个

  • 简单地通过编程
代码语言:javascript
复制
public class ActivityName extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // remove title
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.main);
}
}
  • 或者你可以通过你的AndroidManifest.xml文件来做。
代码语言:javascript
复制
<activity android:name=".ActivityName"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
  • 如果您使用的是AppCompatActivity,那么您需要设置以下主题
代码语言:javascript
复制
<activity android:name=".ActivityName"
android:label="@string/app_name"
android:theme="@android:style/Theme.AppCompat.Light.NoActionBar"/>
  • styles.xml中根据自己的创建进行定制
代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<style name="theme_fullScreen" parent="android:Theme.Black"> 
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowFullscreen">true</item>
</style> 
</resources>
票数 0
EN

Stack Overflow用户

发布于 2017-09-30 06:56:33

试试这个。

清单中的way 1.set

代码语言:javascript
复制
<activity
    ...
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />

java代码中的way 2.set

代码语言:javascript
复制
@Override

public void onCreate(Bundle savedInstanceState) {

   super.onCreate(savedInstanceState);

   // add this before setContentView methood ,and after super
   requestWindowFeature(Window.FEATURE_NO_TITLE); 

   getWindow().setFlags(WindowManager.LayoutParams.FILL_PARENT, WindowManager.LayoutParams.FILL_PARENT);  

   setContentView(R.layout.activity_main);

}

方法3.set在清单中,并按样式设置

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="theme_fullScreen" parent="android:Theme.Black"> 
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>
    </style> 
</resources>

在舱单上

代码语言:javascript
复制
<activity android:name=".LoginActivity"
    android:theme="@style/theme_fullScreen"/>

Note

  • 更改android:themeActivity
  • 设置getWindow().setFlags(WindowManager.LayoutParams.FILL_PARENT, WindowManager.LayoutParams.FILL_PARENT);
票数 0
EN

Stack Overflow用户

发布于 2017-09-30 08:36:45

其他答案是正确的,但我提供了一个解决方案,我正在使用,甚至在通知或任何其他焦点更改时,它仍然保持原状或回到原来的状态。

把这个放在你的活动中

  • 声明此变量 私有int currentApiVersion;
  • 把这个放进onCreate currentApiVersion = Build.VERSION.SDK_INT;最终int标志= View.SYSTEM_UI_FLAG_LAYOUT_STABLE,View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION,View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION,View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN,View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY,View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY,View.SYSTEM_UI_FLAG_FULLSCREEN;if ( getWindow().getDecorView().setSystemUiVisibility(flags);>= Build.VERSION_CODES.KITKAT) {currentApiVersion final View decorView = getWindow().getDecorView();decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {@覆盖公共虚onSystemUiVisibilityChange(int可见性){ if (可见性& View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {decorView.setSystemUiVisibility(标志);});}
  • 而这种方法低于onCreate @SuppressLint("NewApi") @Override void onWindowFocusChanged(boolean ){ super.onWindowFocusChanged( hasFocus);if (currentApiVersion >= Build.VERSION_CODES.KITKAT & hasFocus) { View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN View.SYSTEM_UI( _FLAG_HIDE_NAVIGATION、View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY、|View.SYSTEM_UI_FLAG_FULLSCREEN);}}

这将给你最好的全屏幕活动,就像一个游戏活动。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46500340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档