我经常遇到这个问题,我拒绝相信如果不创建自定义布局就无法解决:
如何将视图与缩放以匹配其父边界但保持纵横比的 ImageView 对齐(缩放类型不是 fitXY )。我假设如果您将 adjustViewBounds 设置为 true,则视图边界将被调整以匹配图像的实际大小(“如果您希望 ImageView 调整其边界以保持其可绘制对象的纵横比,请将其设置为 true。 ”)。但事实并非如此。如果图像必须按比例放大或缩小以适应其范围,这并没有什么区别。
看看这个布局:
<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
>
<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:src="@drawable/square" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/imageView1"
android:layout_alignTop="@+id/imageView1"
android:text="@string/hello_world" />
</RelativeLayout>
此布局如下所示:
如您所见,边界没有得到调整,并且 TextView 与不正确的边界对齐。我创建了一个自定义布局来创建正确的边界,但也许我遗漏了一些东西,应该可以使用标准布局功能......
编辑:澄清:我正在寻找一种将 TextView 与实际图像对齐的方法。这就是给定示例中的红色方块。