繁体   English   中英

Android ImageView被裁剪

[英]Android ImageView being cropped

首先,这里有个图形来说明我的问题: 图形

在左图上,您可以看到它的外观。 这也是AndroidStudio在预览中显示它的方式。 但是,如果我在模拟器上运行它,它将裁剪图像,仅留下深绿色的部分。 (右图)

<ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/img_header"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:focusableInTouchMode="false"
        android:src="@drawable/header"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop" />

父视图:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".menu">

我尝试了不同的scaleTypes,但没有任何东西能给我我想要的结果。 这不是我第一次迷恋ImageViews,而是我第一次无法自己解决问题...

如果删除“ adjustViewBounds”,则预览显示与设备/仿真器相同的结果。 如果那是对某人的提示。

编辑:我创建了标题的第二个版本,它的大小是原来的两倍。 现在,它可以与“ fitXy”和“ adjustViewBound(true)”一起使用。 但为什么? 原始图像的高度为512像素,这足以使AdjustViewBounds保持宽高比。

听起来您想要CENTER_INSIDE:

android:scaleType="centerInside"

公共静态最终ImageView.ScaleType CENTER_INSIDE

在API级别1中添加了统一缩放图像(保持图像的宽高比),以便图像的两个尺寸(宽度和高度)都等于或小于视图的相应尺寸(减去填充)。 然后,图像在视图中居中。 在XML中,使用以下语法:android:scaleType =“ centerInside”。

问题可能是AdjustViewBounds不会使ImageView的大小超出可绘制对象的自然尺寸。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM