【问题标题】:ImageView with wrap_content height shows very skinny / cropped photo instead of full height具有 wrap_content 高度的 ImageView 显示非常瘦/裁剪的照片而不是全高
【发布时间】:2012-11-09 16:15:01
【问题描述】:

我有一个屏幕,用户可以在其中阅读文章(顶部有大照片。

它的一般结构是:

LinearLayout -> ScrollView -> LinearLayout -> ImageViews,TextViews...etc

我遇到问题的 ImageView 是顶部的大图像(在文章标题下方,但在文本上方:

        <ImageView
            android:id="@+id/article_photo"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@color/super_light_gray"
            android:scaleType="centerCrop"
            android:contentDescription="@string/articlePhoto"
            android:cropToPadding="true"
            android:layout_marginBottom="10dp"
            android:padding="1dp"/>

问题是,照片出现了,但被垂直裁剪了很多,所以即使是垂直方向的照片也会显得非常瘦和宽。我认为“wrap_content”应该使它成为照片的全部高度......但我显然错了:)

我怎样才能让照片显示全宽(已经工作),但也全高?

我正在使用 UniversalImageLoader 加载图像:

        if(lrgPhoto != null && !lrgPhoto.filepath.equals(""))
        {
            imageLoader.displayImage(
                "http://img.mysite.com/processes/resize_android.php?image=" + lrgPhoto.filepath + "&size=640&quality=90",
                imageView,
                imgDisplayOptions
                );
            imageView.setVisibility(View.VISIBLE); //show photo
        }
        else
        {
            imageView.setVisibility(View.GONE); //hide photo
            imageView.invalidate();
        }

编辑:

如果我将“scaleType”更改为“fitXY”,则图像会显示正确的尺寸而不会被裁剪,但它不是全角的。有没有一种方法可以让我同时拥有全角和不奇怪的裁剪?

看起来“裁剪”是因为它使用图像的原始高度作为高度,但它正在放大图像以适应全宽......

【问题讨论】:

  • 我想你想要 wrap_content 的宽度和高度
  • @raydowe - 但我希望宽度是屏幕的宽度。
  • @raydowe - 不过 - 确实做到了,所以它们不会被奇怪地裁剪 - 所以 - 这是一个好的开始......但是它们不是全宽的。 ://
  • 抱歉,我错过了这部分问题

标签: android xml


【解决方案1】:

将此添加到 imageview xml:

android:adjustViewBounds="true"

【讨论】:

  • 哇,这应该是真正的答案。我不敢相信这不是默认开启的。
【解决方案2】:

改变

android:scaleType="centerCrop"

android:scaleType="fitXY"

【讨论】:

    【解决方案3】:

    我原以为这很简单,但似乎单独使用 xml 布局可能无法实现:

    ImageView - have height match width?

    【讨论】:

    • 我同意单独使用 /xml 可能无法实现,但我也不希望它们像所提供的链接那样是固定宽度的方形图像。
    • 对,我只是链接以显示答案,所有人都说这在 XML 中是不可能的。由于您将要编写 java 代码,如果您可以获得原始图像尺寸,则应该相对简单地找到新的全尺寸宽度并将相同的比例应用于高度。
    猜你喜欢
    • 2016-11-06
    • 1970-01-01
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    相关资源
    最近更新 更多