0

我有一个ImageView

android:layout_height="100dp"   
android:layout_width="wrap_content"
android:scaleType="fitCenter" 
android:adjustViewBounds="true"   

我看到的是,如果我设置一个具有尺寸的图像(基于我的电脑的信息)1280px854
如果我在我的电脑中打开它,图像看起来很大。尽管我已经设置
了相同的图像,但我的图像很小。 我不确定我是否明白这是如何工作的。例如 1280/4 = 320dpi (xxxhdpi) 但对于图像视图没有宽度 澄清:我试图理解为什么它会这样工作并且不会使它变大。ImageViewwrap_content
wrap_content320dpi
wrap_content

4

3 回答 3

3

首先,让我们谈谈你的图像的比例。它是 1280px 宽和 854px 高,因此,它的比例是1280/854 ≈ 3/2

其次,您已将高度设置ImageView100dp。如果不指定宽度,那么android会尽量感知比例(3/2)并计算宽度:

ratio = width/height
3/2 = width/100
width = 150dp

请注意,它给了我们dp,如果我们改为插入px(对于高度),它将给我们 px 。

第三,现在我们有了图片的大小(150dp x 100dp),imageViewwidth='wrap_content'的宽度将对应150dp

于 2019-04-15T10:21:46.027 回答
0

解决方案是设置android:layout_height="wrap_content",因为 layout_height 中的 100dp 限制了图像宽度的“增长”。

于 2019-04-13T09:56:00.107 回答
0

这个属性:

android:scaleType="fitCenter"

表示将保留图像的原始纵横比。
您想将该图像ImageView与以下内容相匹配:

android:layout_height="100dp"

因此,由于您限制了图像的高度,如果它大于 100dp,它将缩小到该高度,并且其宽度将按比例缩小。

于 2019-04-13T10:27:58.183 回答