iOSエンジニアのつぶやき

毎朝8:30に iOS 関連の技術について1つぶやいています。まれに釣りについてつぶやく可能性があります。

【Android】アスペクト比で制約を指定する

結論

まず、前提としてアスペクト比で制約を追加したいものはLinearLayoutなどではなく、ConstraintLayoutで内包する必要があります。 あとはlayout_constraintDimensionRatioアスペクト比を設定すれば完了です。アスペクト比の指定は"幅:高さ"の順番です。

app:layout_constraintDimensionRatio="1:1"

また、この時にandroid:layout_widthandroid:layout_height属性を消すと、下記のようなエラーが発生するので、0dpに設定しておきましょう。

android.view.InflateException: Binary XML file line #13: Binary XML file line #13: You must supply a layout_width attribute.

ちなみに、幅と高さ、どちらかを基準としてもう一方の制約を決定したい場合があると思いますが、そんな場合はwまたはhで、レスポンシブに変更したい方を指定します。下記の例では、幅を基準として高さを決定するようになります。

app:layout_constraintDimensionRatio="h,1:1"

てな感じで本日も以上となります🍺

参考

その他の記事

yamato8010.hatenablog.com

yamato8010.hatenablog.com

yamato8010.hatenablog.com