[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ように使うものらしい。
関連記事
-
PLANEX Xperia用 MicroUSBケーブル BN-XperiaPW
Xperiaに標準添付されているMicroUSBケーブルが太く長くて使いづらいので、伸び縮みするケー
-
Android開発本 まとめ
Android開発に関して調べてみようと思い、本を検索してみたら大量に出てきて、しかも名前が似通って
-
Android Market デベロッパーコンソールに統計情報が追加された
Androidマーケットにアプリをリリースする人は、デベロッパーコンソールを使ってアプリをマーケット
-
Androidマーケットに有料アプリを公開してみた
以前Androidマーケットに無料アプリを公開したが、数は少ないが反響はあるようなので有料版も公開し
-
Android のコードネームとAPI LevelとPlatformバージョンの関係 2011/08/02
FroyoとかGingerbreadとかHoneycombとかコードネームが沢山あって、バージョンと
-
Wi-Fi6Eルータ TP-Link AXE5400購入
Wi-Fi6E を試してみたくなり、TP-Link AXE5400 を購入してみた。当時一
-
dynabook AZ クラウドブック Android2.1搭載 10.1型ワイド PNAZ05MNA
Amazon を放浪していてたまたま発見。 東芝がこんなものを出していたのか。全く知らなかった。 【
-
Linking 対応デバイス tomoru
この前 Makuake で出資しそこねた Tomoru が Amazon で ¥ 1,069 + ¥
-
Xperia ラスターホワイト オークションで落札
日本国内でもAndroid携帯が増えてきたので、そろそろAndroid開発もしてみようということで、
-
Kickstarter で iPhone/Android で使える腕時計 Pebble に出資してみた
Kickstarter で28時間で100万ドルを調達したという Pebble E-Pape