KotlinでAndroidアプリ#12

画面定義のポイント

AndroidのConstraintLayoutレイアウトを学習するが、その前にAndroidの画面定義のポイントを紹介する。

通常画面に部品を配置する際にはその縦/横位置をドット(dp)などの単位で指定する。しかしこれではAndroidアプリのデザインはできない。なぜならAndroidのスマホはiPhoneと違い様々なメーカーから発売されており、その解像度はまちまちだ。従って横、縦位置をドットなどで指定しては、解像度が相違するスマホでは全く違った配置となってしまう。

※単位のdpは厳密にはドットではありません。解像度に合わせスケーリングされますが、端末により誤差が発生する可能性があります。

これを回避するために部品の配置は比率や他部品などとの関連性(上下、左右にあるか)で指定することになる。

これらを踏まえてConstraintLayoutではどう実現するか、これを確認していく。

初めての部品配置

何はともあれConstraintLayoutに部品配置を行っていこう。新し画面定義ファイルを作成する。画面左側からres/layoutを選択しマウス右クリック->New->Layout Rsource Fileを選択

パネルが開くの「File Name」欄にtestなどの適当名前を入力し、OKボタンを押下。これで新しい画面定義ファイルが作成される。ここで色々と試していこう

画面左側から部品のボタンを選択しプレビューエリアへドロップする。これにより部品が配置される。

ボタンが中央に配置できた!。でも・・・画面左下の構成を見るとエラーのようなマークが付いている。

これは、ConstraintLayoutレイアウトでは配置を水平、垂直方向に最低でも一つの制約が必要だからだ。今は何も制約設定していないのでエラーになっている。

そこで配置された部品を選択し上辺に表示された○を画面の上にドラック、画面の左辺に表示された○を左にドラックする。

エラーが解消された。この操作により画面の上、左からの位置を制約ができたのだ。しかし画面右側の部品の属性を見て欲しい。

layout_marginLeftに「160dp」、layout_marginTopに「288dp」が設定されている。つまりこれ制約されたからといって、Androidの画面デザインでは避けたい横、縦位置をdp指定で行っているのだ!!

これを解消しないとConstraintLayoutレイアウトが利用できない。うーん、できるのか・・・。次回もっと頑張ってみる・・・。

前へ<ーーー>つづく

タイトルとURLをコピーしました