[Android 4.4] フルスクリーンで動くアプリを作る

こんにちはKID.Aです。

Kitkatがリリースされてからもう1カ月近くたってますね。
ラボではあまりKitkatのネタを紹介していないので、これから少しずつ紹介できたらいいと思います。それではAndroid 4.4から追加されたAPIの紹介をしていきます。
 

フルスクリーンの説明

今まで、下記のようなシステムバーとナビゲーションバー(赤丸箇所)をSYSTEM_UI_FLAG_HIDE_NAVIGATIONとSYSTEM_UI_FLAG_FULLSCREENを使って隠すことはできました。

device-2013-11-25-105810_02

下記の画像はSYSTEM_UI_FLAG_HIDE_NAVIGATIONとSYSTEM_UI_FLAG_FULLSCREENを使用した場合です。

device-2013-11-25-105736

しかし、1点でもタップすると、すぐにシステムバーとナビゲーションバーが再表示されてしました。

device-2013-11-25-105736_03

allowunder

device-2013-11-25-105810

 

それが、タッチされても再表示しないAPIが追加されました。これで全画面のアプリが作れるようになりました。

immersive full-screen mode

KitkatからSYSTEM_UI_FLAG_IMMERSIVEという定数が追加になりました。これを使用することで、タップしてもシステムバーとナビゲーションバーが表示せずにタッチイベントを受け取れるようになりました。ユーザは画面の内側からスワイプして、システムバーとナビゲーションバーを再表示できます。一度再表示なったシステムバーとナビゲーションバーは再度、非表示になることはありません。
 
一定時間経過した場合に、非表示にするにはSYSTEM_UI_FLAG_IMMERSIVE_STICKYを使用します。

  

実装

実装と挙動に関してみていきます。
 

  • SYSTEM_UI_FLAG_IMMERSIVE
View decor = this.getWindow().getDecorView();
decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION  | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE);

(挙動)
device-2013-11-25-105736_04 (赤字の部分をスワイプする以外の操作では再表示されない)

allowunder

device-2013-11-25-105810
 

  • SYSTEM_UI_FLAG_IMMERSIVE_STICKY
View decor = this.getWindow().getDecorView();
decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION  | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

(挙動)

device-2013-11-25-105736_04

allowunder

device-2013-11-25-105747

allowunder

一定時間経過

allowunder

device-2013-11-25-105736

 

これでフルスクリーンで動くアプリを作れるようになりますので、画面いっぱいにコンテンツを表示した場合はぜひとも利用して下さい。

 

KID.A

KID.A の紹介

楽して生きることと一発逆転を夢見ている、ちゃきちゃきのAndroiderです。 いろいろアプリを出しているのですが、いつもリリース後にターゲットユーザ数を2桁見誤っていたことに気付くので、残念でなりません。下方修正で、ヒットがでません。おしいです。 明日から本気出します。 よろしくお願いします。
カテゴリー: Android タグ: , , , , , , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です