このトピックに関する以前の質問を見てきましたが、どれもうまくいかないようです。私は、2 つの (あるべき) 完全に正方形の ImageButtons を含む水平方向の linearlayout を持っています。linearlayout は画面の幅にうまく収まり、ImageButtons の幅は完璧です。ただし、本来の 2 倍の高さでレンダリングされます。fitStart と fitEnd の scaleTypes と fitXY を使用してみましたが、親の幅を確認し、それを使用して他のオブジェクトの幅を考慮せずにスケーリングされた高さを計算するかのように、同じようにレンダリングされます線形レイアウトで。したがって、次のコードでは、縦横比 2:1 のボタンが 2 つ並んでいます。
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:scaleY="1"
android:orientation="horizontal"
>
<ImageButton
android:id="@+id/button2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/tapdat_tap2"
android:scaleType="fitXY"/>
<ImageButton
android:id="@+id/button3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginRight="0dp"
android:layout_weight="1"
android:background="@drawable/tapdat_nottap"
android:scaleType="fitXY"/>
</LinearLayout>
さらに、linearlayout タグに scaleY=".5" を入れてみましたが、正しい高さでレンダリングされますが、余分な高さが切り取られた使用できないスペースが大量に残り、他のコンテンツで埋めることができません。(この scaleY を ImageButtons に個別に配置しようとしても、同じ結果が得られました。)