web-dev-qa-db-ja.com

Android:フルスクリーンアプリケーションの作成

アプリを全画面表示するために、Android St​​udioの最新バージョンで作成された新しい空のアクティビティに行うことができる最も簡単な変更は何ですか?

フルスクリーンAndroidアプリケーションを作成したい。 Android St​​udioを使用しています。 この投稿 は、次のような行を追加することを示唆しています...

Android:theme="@Android:style/Theme.Holo.Light.NoActionBar.Fullscreen"

...以下に示すように、AndroidManifest.xmlファイルに追加します。

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
            package="com.lexogram.james.blackslate" >

            <application
                    Android:allowBackup="true"
                    Android:icon="@drawable/ic_launcher"
                    Android:label="@string/app_name"
                    Android:theme="@style/AppTheme" >
                    <activity
                            Android:name="com.lexogram.james.blackslate.MainActivity"
                            Android:label="@string/app_name"
                            Android:theme="@Android:style/Theme.Holo.Light.NoActionBar.Fullscreen">
                            <intent-filter>
                                    <action Android:name="Android.intent.action.MAIN" />

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

    </manifest>

これを行うと、アプリはコンパイルされますが、起動時にクラッシュします。この行を削除すると、アプリは正常に動作しますが、他のユーザーからも指摘されているように、アクションバーとタイトルバーが表示されます。

これはAndroidアプリを作成する最初の試みであるため、アプリは元のHello Worldの例からほとんど変更されません。

編集:私は新しいプロジェクトを作成し、それをこの1つだけ変更しました。エラーログからの抜粋を次に示します。

FATAL EXCEPTION: main
    Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.lexogram.james.test/com.lexogram.james.test.MainActivity}: Java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
        at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2669)...

注:Android 2.2(Froyo)を実行している古いSamsung SGH-T499Yでテストしています。

40
James Newton

Android:theme="@Android:style/Theme.Holo.Light.NoActionBar.Fullscreen">を適用しようとしているアクティビティがActionBarActivityを拡張しており、AppCompatテーマを適用する必要があるため、この問題が発生しています。

ActivityではなくActionBarActivityからアクティビティを拡張します

Javaクラスをそれに応じて少し変更する必要があるかもしれません。

ステータスバーも削除したい場合は、onCreateViewメソッドのsetContentView(layout)の前にこれを使用してください

        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);
74
Rohit5k2

現在のテーマに次の属性を追加するだけです。

<item name="Android:windowFullscreen">true</item>

例えば:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/orange</item>
    <item name="colorPrimaryDark">@Android:color/holo_orange_dark</item>
    <item name="Android:windowNoTitle">true</item>
    <item name="Android:windowFullscreen">true</item>
</style>
28
Asaf Pinhassi

アクティビティタグのマニフェストファイルでこれを行うだけです

Android:theme="@style/Theme.AppCompat.Light.NoActionBar"
17
user3637297

私の場合、すべて正常に動作します。 logcatを参照してください。たぶんlogcatはあなたの問題を解決するのに役立つ何かを示しています

とにかく、プログラムでそれを試すことができます:

 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);
        }
 }
9
DMan

回答の更新アクティビティの開始時に白い画面がある場合に備えてAndroid:windowIsTranslucentを追加しました

values/styles.xmlに新しいスタイルを作成するだけです

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <!-- to hide white screen in start of window -->
    <item name="Android:windowIsTranslucent">true</item>
    </style>

</resources>

androidManifest.xmlからスタイルをアクティビティに追加します

Android:theme="@style/AppTheme"

このように

<activity Android:name=".Splash"
            Android:theme="@style/AppTheme">
            <intent-filter>
                <action Android:name="Android.intent.action.MAIN" />
                <category Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
8
Mina Fawzy

次のコードを使用して、Androidでページ全体を表示できます

ステップ1:styles.xmlセクションでテーマを作成する

<style name="AppTheme.Fullscreen" parent="AppTheme">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

ステップ2:AndroidManifest.xmlにテーマを追加する

<activity
Android:name=“.Activity”
Android:theme="@style/AppTheme.Fullscreen"/>

ステップ3:Javaコードセクション

たとえば、onCreate()メソッドに次のコードを追加できます。

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
4
Matin Soleimani

In onCreate call

requestWindowFeature(Window.FEATURE_NO_TITLE); // for hiding title

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
                            WindowManager.LayoutParams.FLAG_FULLSCREEN);
3
Xar E Ahmer

このドキュメント に従って、次のコードをonCreateに追加します

getWindow().getDecorView().setSystemUiVisibility(SYSTEM_UI_FLAG_IMMERSIVE_STICKY |
        SYSTEM_UI_FLAG_FULLSCREEN | SYSTEM_UI_FLAG_HIDE_NAVIGATION   | 
        SYSTEM_UI_FLAG_LAYOUT_STABLE | SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
1
wannik

私は最近、まったく同じ問題を抱えており、上記のRohit5k2のソリューションに加えて、次の投稿からも恩恵を受けました:

https://bsgconsultancy.wordpress.com/2015/09/13/convert-any-website-into-Android-application-by-using-Android-studio/

ステップ3では、MainActivityActivityの代わりにActionBarActivityを拡張します(Rohit5k2が述べたように)。 NoTitleBarおよびFullscreenテーマ要素をAndroidManifest.xmlファイルの正しい場所に配置することも非常に重要です(ステップ4を見てください)。

0
aparkhills