1. ホーム
  2. android

[解決済み] CENTER_INSIDEとFIT_CENTERのスケールタイプはどう違うのですか?

2022-04-24 17:22:27

質問

の区別がつきません。 ImageView.ScaleType.CENTER_INSIDEImageView.ScaleType.FIT_CENTER .

CENTER_INSIDE

画像を均一に拡大縮小し(画像のアスペクト比を維持し)、画像の両方の寸法(幅と高さ)がビューの対応する寸法(パディングを除く)と同じかそれ以下になるようにします。

FIT_CENTER

元の src の縦横比を維持しつつ、src が dst の内部に完全に収まるようなスケールを計算します。少なくとも1つの軸(XまたはY)は正確にフィットします。結果は dst 内の中央に配置されます.

どなたか、この2つの違いを教えてください。

どのように解決するのですか?

FIT_CENTER は、ソースがコンテナ内に完全に収まるようにし、水平軸または垂直軸のいずれかが正確になるようにするものです。

CENTER_INSIDE は、端と端を正確に一致させるのではなく、画像をコンテナ内の中央に配置します。

したがって、10" x 10"の正方形のボックスと8" x 8"の画像がある場合、CENTER_INSIDEはボックスの中央に直接置かれ、ソースとデスティネーションコンテナの間に2" が置かれることになります。

FIT_CENTER を使用すると、上記の例と同じ画像がコンテナ全体に収まります。これは、辺が等しく、一方の軸が相手側に一致するためです。FIT_CENTERでは、5" x 10"のボックスと5" x 7"の画像があった場合、画像は比例して拡大縮小され、軸の1つがフィットし、かつ画像は移動先の中央に配置されます。

この2つは似ていますが、一方はソースがデスティネーションにできるだけ入るように作られており、もう一方はデスティネーション内で画像が中央に配置されるだけです。

少しは理解できたでしょうか?