アプリの画面サイズ(縦横ピクセル)を取得するの?|Size|MediaQuery|Android|Flutter
アプリの画面(縦横)サイズをピクセルで取得したい。
例えば、スマホの画面をスクリーンショットで撮影したら、その画像は 1080px(横)× 1920px(縦)だった。
プログラムでもこのサイズで取得できるのだろうか?
取り方
「MediaQuery」を使う。画面サイズに関する情報が手に入る。
---
final size = MediaQuery.of(context).size;
final width = size.width;
final height = size.height;
final size = MediaQuery.of(context).size;
final width = size.width;
final height = size.height;
---
これで縦横サイズは取得できるけど、物理的なピクセル値ではないので要注意!
The size of the media in logical pixels (e.g, the size of the screen). Logical pixels are roughly the same visual size across devices. Physical pixels are the size of the actual hardware pixels on the device. The number of physical pixels per logical pixel is described by the [devicePixelRatio].
物理的なピクセル値に変換するには「devicePixelRatio」が必要だって書いてある。こうだ。
---
final size = MediaQuery.of(context).size;
final widthPixel = size.width * MediaQuery.of(context).devicePixelRatio;
final heightPixel = size.height * MediaQuery.of(context).devicePixelRatio;
final size = MediaQuery.of(context).size;
final widthPixel = size.width * MediaQuery.of(context).devicePixelRatio;
final heightPixel = size.height * MediaQuery.of(context).devicePixelRatio;
---
で、これをログに出力してみたら、1080px(横)× 1872px(縦) だった。
おっと、1920px(縦)とは 48px の誤差がある。どうも、Android だと、画面下部の Navigation Bar だけが、アプリの画面サイズには含まれないようだよ~。
関連する記事
参照した記事
- How To Use Flutter Screen Width And Height With MediaQuery
- Flutterで画面サイズや向きを取得する(MediaQuery/OrientationBuilder)
- MediaQuery使い方
- 【Flutter】デバイスの画面サイズを取得する方法
- Flutter でデバイスの画面サイズを得る MediaQuery
- 【Flutter】画面サイズを取得する方法
- 【Flutter/ Dart】デバイスの画面サイズや縦横比を取得する方法
- [Flutter]Containerのサイズを画面サイズとの比率で設定するには?
- Flutter 画面サイズとAppBarの高さに合わせてWidgetを配置する方法
直近に読んでいた漫画(おすすめ)
コメント
コメントを投稿