私はこれに対する解決策を見つけようとしていますが、おそらく「onMeasure()」メソッドが Android でうまく機能する方法を理解していません!
Android でカスタム ビューを「動的」にしたのはこれが初めてなので、画面の大きさに応じてビューのサイズを変更するには、「onMeasure()」メソッドをオーバーライドする必要があることを学びました。ビューを画面の幅の半分に加えて少し余分にしたいので (この数値は、3 から 5 の間の比較的小さい限り、任意です)、onMeasure メソッド用に次のコードを書きました。
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
int halfWidth = (MeasureSpec.getSize(widthMeasureSpec) / 2) - 5;
this.setMeasuredDimension((int) halfWidth, (int) halfWidth);
}
私がオンラインで見つけたどこにでも、似たようなことを達成しようとしているときよりもはるかに多くのコードがあるため、これはひどいやり方だと確信しています!
これらのビューを XML で隣り合わせに配置すると、最初のビューのサイズは正しくなります (実際には、幅の半分のサイズから少しだけマイナスしたサイズになります)。最後のビュー マイナスもう少し! (私はそれの写真を投稿しますが、残念ながらそうするのに十分な評判がありません...)
XML のどこに配置しても、2 つのボックスは同じサイズでなければなりません。それらはすべて、画面の幅の半分のサイズから少し余分なものを引いたものにする必要があります。
「setMeasuredDimension()」の使用方法に関係があることは知っていますが、それが何であるかはわかりません。誰かが私のために物事を少し明確にしてくれることを本当に願っています! ありがとう!:)