ImageView と ImageButton のサイズ変更に問題があります。
長方形のレイアウト (水平の長方形か垂直の長方形かは知りたくない) と、透明な背景を含み、ImageResource として正方形の画像を含む ImageButton があるとします。
ボタンを四角く保ちたいので、ボタンsetScaleType(ScaleType.FIT_CENTER)
を伸ばすために使用します。それはうまくいきます。
問題は、ボタンを引き伸ばすのではなく、長方形のレイアウトに合わせて縮小する必要がある場合に発生します。その場合、画像は正しく縮小されますが、レイアウトで予約されたスペースは、私が持っていた場合に画像によって予約されるスペースです。作物にしました。
これが起こると私が思うことです:
- 画像はレイアウトに配置されます
- レイアウトのスペースは確保されています
- この後、画像のサイズが変更されます
- 要求されたスペースが増加すると、レイアウトが拡大されます。それ以外の場合は何も行われません
- レイアウトの結果として、画像を縮小する必要がある場合、画像は大量の空きスペースによって丸められます。
古典的な問題は次のとおりです。たとえば、6 つの正方形のボタンを含む 1 つの行を含むレイアウトがあります。ボタンのサイズが Horizontal LinearLayout の高さよりも大きい場合、ボタンはボタンに触れるのではなく、多くの空のスペースで離れてしまいます。
画像に固定サイズを使用して、レイアウトに配置する前に強制的にサイズ変更しようとしましたが、これは解決策ではありません。まず第一に、動的にしたい (つまり、アプリの有効期間中にレイアウトのサイズが変更される可能性があり、画像がそれに追従する必要がある)。第二に、画像をレイアウトに配置すると、レイアウトがまだ設定されておらず、そのサイズがゼロを返すことが簡単に起こります。
誰でも私を助けることができますか?
ありがとうございました。