[Android SDK] Notification Bar と Title Bar のサイズを知りたい

公開日: : 最終更新日:2016/06/08 Android

自分はXMLでGUI部品を配置するのがあまり好きではないので、自作アプリ おんぷちゃん for Android では、コードで全て配置している。
Androidプログラミングではあまり推奨されない方法だと思うのだが、XMLでのGUI部品配置は思った通りに配置されないことが多いので、コードで画面サイズを取得して、画面に対する割合などで部品を配置している。(単にうまいやり方を知らないだけという話もあるかもしれない)
で、そういうことをやっていると、Android OS の Notification Bar や、アプリのTitle Barのサイズも考慮する必要が出てくる。
しかし、意外にNotification BarやTitle Barのサイズを取得するのはむずかしい。以前調べたときには日本語でそういう情報を見つけられなかった。

で、困ったときのStack Overflow 頼りで調べると、こんな投稿がある。

Size of android notification bar and title bar? – Stack Overflow

 DisplayMetrics metrics = new DisplayMetrics();
 getWindowManager().getDefaultDisplay().getMetrics(metrics);
     int myHeight = 0;
     switch (metrics.densityDpi) {         
case DisplayMetrics.DENSITY_HIGH:
             Log.i("display", "high"); 
            myHeight = display.getHeight() - 48; 
            break;  
       case DisplayMetrics.DENSITY_MEDIUM:
             Log.i("display", "medium/default"); 
            myHeight = display.getHeight() - 32; 
            break; 
        case DisplayMetrics.DENSITY_LOW: 
            Log.i("display", "low");  
           myHeight = display.getHeight() - 24;  
           break; 
        default:  
           Log.i("display", "Unknown density"); 

で、このコードを流用して画面上の部品配置をしていたのだが、今日自作アプリの「au IS03で正しく表示されない」という問題を調査していて、実は今は DisplayMetrics.DENSITY_XHIGH なるものがSDKに追加されていることに気づいた。

API Level 9 (Android 2.3) で追加されたらしい。
IS03は解像度が 960×640ドットもあるので、DPIが320になっているということだ。

同様のことをやっている人は余りいないと思うけれども、参考になるかも知れないのでメモしておいてみる。

追記 2016/06/08

おんぷちゃん for Android がダウンロードできない問題が報告されて、かなり久しぶりに Android開発を再開している。

以前開発したときは Eclipseだったが、今は Android Studio だ。まずAndroid Studioの使い方から学習している。

DisplayMetrics もずいぶん追加されたものだ。今は DENSITY_XXXHIGH まで用意されている。3840×2160 の 4K Displayように使うものらしい。

 

関連記事

no image

Androidアプリ紹介本 「Androidアプリ事典512」

Androidアプリにどんなものがあるのかをほとんど知らない しかしAndroidマーケ

記事を読む

no image

Android2.1プログラミングバイブル (布留川 英一)

Android本2冊目。Android Hacks はやはりAndroid初心者には難しかったので、

記事を読む

no image

Pebble E-Paper Watch のお届け先住所入力ページが用意された

4月にKickstarterで出資した、Pebble E-Paper Watch を作ってい

記事を読む

no image

Android Hacks (株式会社ブリリアントサービス著) のメモ

日本で使える端末も増えてきたのでそろそろAndroid開発を学習しようと思い、今出版されている本を列

記事を読む

no image

iPhone&Androidアプリ内課金プログラミング完全ガイド

こんなマニアックな本が11月に出ていたらしい。 立ち読みしてよさそうだったら買ってこよう。 売れ

記事を読む

no image

Admob に関して少し調べてみた

iPhoneアプリとAndroidアプリでAdmobを使って広告を表示してみているが、いまだに管理画

記事を読む

no image

dynabook AZ クラウドブック Android2.1搭載 10.1型ワイド PNAZ05MNA

Amazon を放浪していてたまたま発見。 東芝がこんなものを出していたのか。全く知らなかった。 【

記事を読む

no image

Professional Android 2 Application Development (Reto Meier著)

Xperiaをオークションで入手して、Androidアプリの開発をはじめたので、書店やWebでAnd

記事を読む

no image

iPhone/Androidアプリで週末起業(山崎潤一郎著) を読んでみた。

前著を読んで、ちょっと楽観的に書きすぎていると思ったけれどもとりあえず最新版が出たので読んでみた。

記事を読む

Linking 対応デバイス tomoru

この前 Makuake で出資しそこねた Tomoru が Amazon で ¥ 1,069 + ¥

記事を読む

Message

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Break Back 22巻まで読了

テニス漫画と言えば、ベイビーステップスだと思っていたし、全巻持ってい

TORRAS iPhone 16 Pro Max用ケース

自分はiPhoneはケースを付けない派で、iPhone 12

iPhone 16 Pro Max 購入

iPhone 16 Pro Max 256GB 189000

Ember Mug 2のACアダプタをUSB Type-Cに変えてみた

冬になると活躍する Ember Mug 2 の充電器は付属のACアダ

Wi-Fi6Eルータ TP-Link AXE5400購入

Wi-Fi6E を試してみたくなり、TP-Link AXE5

→もっと見る

PAGE TOP ↑