web-dev-qa-db-ja.com

CENTER_INSIDEとFIT_CENTERスケールタイプの違いは何ですか?

ImageView.ScaleType.CENTER_INSIDEImageView.ScaleType.FIT_CENTERの違いがわかりません。

CENTER_INSIDE

画像のサイズ(幅と高さ)がビューの対応する寸法(マイナスパディング)以下になるように、画像を均一にスケーリングします(画像の縦横比を維持します)。

FIT_CENTER

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

誰かが2つの違いを照らすことができますか?

131
Keith

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

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

したがって、10 "x 10"の正方形のボックスと8 "x8"の画像がある場合、CENTER_INSIDEはボックスの中央に直接あり、ソースと宛先コンテナの間に2 "があります。

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

これらは似ていますが、1つはソースが可能な限り宛先を満たすように作成され、もう1つは宛先内で画像を中央に配置します。

少し明確になることを願っています

135
BlackHatSamurai

CENTER_INSIDEFIT_CENTERの違いを図で示します。


使用画像(100×100):

Android_Robot_100.png


小さい画像ビュー(75×50):

CENTER_INSIDE:

CENTER_INSIDE for small image view

FIT_CENTER:

FIT_CENTER for small image view

CENTER_INSIDEFIT_CENTERの両方が画像を縮小します。


大きな画像ビュー(300×200):

CENTER_INSIDE:

CENTER_INSIDE for large image view

FIT_CENTER:

FIT_CENTER for large image view

CENTER_INSIDEは画像を拡大しませんが、FIT_CENTERは拡大します。


Androidロボットは、Googleが作成および共有した作品から複製または変更され、Creative Commons 3.0 Attribution Licenseに記載されている条件に従って使用されます。

228
Pang

画像がコンテナより大きい場合、それらは同じです。画像が小さい場合、コンテナCENTER_INSIDEは画像を拡大しませんが、FIT_CENTERは拡大します。

48
Zarokka