对于以下布局:
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myid"
android:layout_width="200dp"
android:layout_height="200dp"
/>
如果我有一个400x400dp的位图,为什么用它调用setImageBitmap
会覆盖宽度和高度?换句话说:为什么宽度和高度设置为200的图像视图显示为400x400而不是自动缩放图像?
我知道有一个选项可以手动重新缩放位图,但是如果我已经在布局中指定了我的imageview的尺寸,我仍然需要重新缩放图像,这似乎很奇怪。
答案 0 :(得分:1)
如果你想保持比率,请使用ImageView.ScaleType FIT_XY或CENTER_CROP
android:scaleType="centerCrop"
均匀缩放图像(保持图像的纵横比),使图像的尺寸(宽度和高度)等于或大于视图的相应尺寸(减去填充)。
android:scaleType="fitXY"
独立地在X和Y中缩放,以便src与dst完全匹配。这可能会改变src的宽高比。