为什么 imageview 中的 wrap_content 没有根据实际宽度使它变大?
Why does the wrap_content in imageview not make it much bigger based on the actual width?
我有一个 ImageView
有:
android:layout_height="100dp"
android:layout_width="wrap_content"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
我看到的是,如果我设置一个具有 as 尺寸的图像(基于我电脑的信息)1280px854
如果我在我的电脑上打开它,图像看起来很大。
尽管我设置了 wrap_content
.
,但相同的图像在我的 ImageView
中很小
我不确定我明白这是怎么回事。例如。 1280/4 = 320dpi (xxxhdpi) 但对于 wrap_content
图像视图没有宽度 320dpi
澄清一下:我试图理解为什么它会这样工作并且不会用 wrap_content
.
让它变大
解决方案是设置 android:layout_height="wrap_content"
,因为 layout_height 中的 100dp 限制了图像宽度的 "growth"。
这个属性:
android:scaleType="fitCenter"
表示将保留图像的原始纵横比。
您想将该图像与 ImageView
匹配:
android:layout_height="100dp"
因此,由于您限制了图像的高度,如果它大于 100dp,它将缩小到该高度并且其宽度将按比例缩小。
首先,让我们谈谈您的图片比例。它宽 1280px,高 854px,因此,它的比例是 1280/854 ≈ 3/2。
其次,您已将 ImageView
的高度设置为 100dp
。如果不指定宽度,那么android会尽量感知比例(3/2),会计算出宽度:
ratio = width/height
3/2 = width/100
width = 150dp
注意它给了我们 dp
,如果我们插入 px
而不是(对于高度)它会给我们 px。
第三,现在我们有了图像的大小 (150dp x 100dp) 和 width='wrap_content'
imageView 的宽度将对应于 150dp
我有一个 ImageView
有:
android:layout_height="100dp"
android:layout_width="wrap_content"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
我看到的是,如果我设置一个具有 as 尺寸的图像(基于我电脑的信息)1280px854
如果我在我的电脑上打开它,图像看起来很大。
尽管我设置了 wrap_content
.
,但相同的图像在我的 ImageView
中很小
我不确定我明白这是怎么回事。例如。 1280/4 = 320dpi (xxxhdpi) 但对于 wrap_content
图像视图没有宽度 320dpi
澄清一下:我试图理解为什么它会这样工作并且不会用 wrap_content
.
解决方案是设置 android:layout_height="wrap_content"
,因为 layout_height 中的 100dp 限制了图像宽度的 "growth"。
这个属性:
android:scaleType="fitCenter"
表示将保留图像的原始纵横比。
您想将该图像与 ImageView
匹配:
android:layout_height="100dp"
因此,由于您限制了图像的高度,如果它大于 100dp,它将缩小到该高度并且其宽度将按比例缩小。
首先,让我们谈谈您的图片比例。它宽 1280px,高 854px,因此,它的比例是 1280/854 ≈ 3/2。
其次,您已将 ImageView
的高度设置为 100dp
。如果不指定宽度,那么android会尽量感知比例(3/2),会计算出宽度:
ratio = width/height
3/2 = width/100
width = 150dp
注意它给了我们 dp
,如果我们插入 px
而不是(对于高度)它会给我们 px。
第三,现在我们有了图像的大小 (150dp x 100dp) 和 width='wrap_content'
imageView 的宽度将对应于 150dp