Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么imageview中的wrap_内容不会根据实际宽度使其变大?_Android_Image_Android Imageview_Android Resources_Android Resolution - Fatal编程技术网

Android 为什么imageview中的wrap_内容不会根据实际宽度使其变大?

Android 为什么imageview中的wrap_内容不会根据实际宽度使其变大?,android,image,android-imageview,android-resources,android-resolution,Android,Image,Android Imageview,Android Resources,Android Resolution,我有一个ImageView,它有: android:layout_height="100dp" android:layout_width="wrap_content" android:scaleType="fitCenter" android:adjustViewBounds="true" 我看到的是,如果我设置了一个尺寸为的图像(基于我电脑的信息)1280px854 如果我在电脑中打开它,图像看起来会很大。 在我的ImageView中,相同的图像很小,尽管我已经设置了wrap\

我有一个
ImageView
,它有:

android:layout_height="100dp"   
android:layout_width="wrap_content"
android:scaleType="fitCenter" 
android:adjustViewBounds="true"   
我看到的是,如果我设置了一个尺寸为的图像(基于我电脑的信息)
1280px854

如果我在电脑中打开它,图像看起来会很大。
在我的
ImageView
中,相同的图像很小,尽管我已经设置了
wrap\u content

我不知道这是怎么回事。例如,1280/4=320dpi(xxxhdpi),但对于具有
wrap_内容的
图像视图没有as宽度
320dpi


澄清一下:我试图理解为什么它是这样工作的,而不是通过
wrap\u content

使它更大。解决方案是设置
android:layout\u height=“wrap\u content”
,因为版面高度的100dp限制了图像宽度的“增长”。

这个问题:

android:scaleType="fitCenter"
表示将保留图像的原始纵横比
您希望在
ImageView
中为该图像添加以下内容:

android:layout_height="100dp"

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

首先,让我们讨论图像的比率。它宽1280px,高854px,因此其比例1280/854≈ 3/2

其次,您已经将
图像视图的高度设置为
100dp
。如果未指定宽度,则android将尽最大努力感知比率(3/2),并计算宽度:

ratio = width/height
3/2 = width/100
width = 150dp
注意,它给了我们
dp
,如果我们插入
px
(高度),它会给我们px


第三,现在我们有了图像的大小(150dp x 100dp)和
width='wrap_content'
图像视图的宽度将对应于150dp

您实际使用的是高度还是布局高度(宽度相同)?您已经设置了高度,因此,宽度的wrap content将保留图像的比率(x,y)@丹尼尔贝莱扎:很抱歉给你带来困惑。我更新了post@Mitch:是否有一些公式,以便我们知道该比率的最大宽度是多少?当您将指定的高度和宽度设置为
wrap\u content
时,宽度已经表示该比率的最大宽度。如果你对这个数字感兴趣,那么:宽度=高度*(1280*854)。在这种情况下,这不是我要问的。我对当前显示没有问题。我在问它是如何工作的这不是我在问的。我对当前显示没有问题。我在问它是如何工作的,正如我在回答中提到的:图像的原始纵横比将被保留这就是
fitCenter
所做的。这确实很有帮助。但是,我们能知道在同时保持该比率的情况下,宽度可以扩展多少吗?成比例地意味着,如果高度是原始高度的1/3,那么同样的宽度也将适用,因为您没有对宽度施加任何约束。请参阅以下链接:在您之前的评论中,您编写了
width=height*(1280*854)那应该是宽度=高度*(1280/854)。