Makopy'5 La6

スマホアプリ開発とかその周辺のこととか関係ないこと。または恋は言ってみりゃボディー・ブロー

(Xamarin.Forms)端末の画面サイズの取得

基本的に意識すべきではない

じゃあ、こんな記事書くなよ…。
と、思われてしまうかもしれませんが。

端末の画面サイズを取得して、それを元に計算するようなシーンはない方がいいです。
画面サイズやOSによらず、共通のレイアウトを適用できるように作るべきだし、それがXamarin.Formsのいいところだからです。

しかしながら、

  • 回転
  • キーボード表示

などの要因により、
Pageのサイズが動的に変わってしまうような状況もありえます。
そのような場合においては、
固定値として基準になるサイズ
が欲しくなることがあります。

そんな時の為に、その方法を記しておこうと思います。

実装

  • インタフェース部

  • .Droid

  • .iOS

  • 使い方

サンプルプロジェクトはこちら↓
github.com

ポイント

Androidでは、下記の点に注意です。

  • ステータスバーの高さを別途取得して引いておく必要がある
  • 取得できるサイズの単位はPixel
    • Xamarin.Formsで扱うサイズの単位はDIPなので、PixelDIPへの変換が必要
      • Density-independent Pixels = 密度に非依存のピクセル