私がフレームレイアウトを持っているとしましょう:
width = 200dp;
height = 100dp;
フレームの幅を画面の「幅」に合わせて「アスペクト比」を取得し、それに応じて「高さ」を変更して、コンテンツに対して同じことができるようにします。
それを行う最良の方法は何ですか?検索しましたが、答えが見つかりませんでした。
(フレームが中央に配置されるのに役立つ場合)
私がフレームレイアウトを持っているとしましょう:
width = 200dp;
height = 100dp;
フレームの幅を画面の「幅」に合わせて「アスペクト比」を取得し、それに応じて「高さ」を変更して、コンテンツに対して同じことができるようにします。
それを行う最良の方法は何ですか?検索しましたが、答えが見つかりませんでした。
(フレームが中央に配置されるのに役立つ場合)
ここに画面サイズの取得に関する良い投稿があります:
https://stackoverflow.com/a/1016941/356708
それができたら、レイアウトのサイズを手動で設定できます。この投稿は、それに関する詳細を示しています。
https://stackoverflow.com/a/11911123/356708
おそらく全面的にピクセルを使用できますが、正確に何をしているのかわからない場合は、DIP のようなものに固執することをお勧めします (同じリンクの例)。
個人的には、FrameLayout の使用はお勧めしません。特に、複数の子が含まれている場合はなおさらです。
LinearLayout を使用し、その比率を維持するためにその子に重みを与える必要があります。プログラムでそれを行う必要はないと思います。そのため、LinearLayout の使用をお勧めします。