Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.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 将视图与缩放图像视图对齐_Android_Android Layout_Imageview_Alignment_Adjustviewbounds - Fatal编程技术网

Android 将视图与缩放图像视图对齐

Android 将视图与缩放图像视图对齐,android,android-layout,imageview,alignment,adjustviewbounds,Android,Android Layout,Imageview,Alignment,Adjustviewbounds,我经常遇到这个问题,我不相信不创建自定义布局就无法解决这个问题: 如何将视图与已缩放以匹配其父边界但保持纵横比的ImageView对齐(缩放类型不是fitXY)。我的假设是,如果将adjustViewBounds设置为true,则视图边界将被调整以匹配图像的实际大小(“如果希望ImageView调整其边界以保持其可绘制的纵横比,请将其设置为true”)。但事实并非如此。如果图像必须放大或缩小以适应其边界,则不会产生任何影响 看看这个布局: <RelativeLayout xmlns:and

我经常遇到这个问题,我不相信不创建自定义布局就无法解决这个问题:


如何将视图与已缩放以匹配其父边界但保持纵横比的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与不正确的边界对齐。我创建了一个自定义布局来创建适当的边界,但可能我遗漏了一些东西,应该可以使用标准布局功能


编辑:澄清一下:我正在寻找一种将文本视图与实际图像对齐的方法。这就是给定示例中的红方块。

如果在
图像视图上使用-
android:scaleType=“centerCrop”
,会怎么样?
图像将被裁剪以覆盖整个布局,但纵横比将保持不变。

如果在
图像视图上使用-android:scaleType=“centerCrop”
,该怎么办?
图像将裁剪以覆盖整个布局,但纵横比将保持。

好,所以已经三年了,您可能早就知道了。但当您指定adjustviewBounds=true时,您已经完成了一半。您只需更改ImageView布局的宽度和高度,即可同时包装内容

您的TextView正在按照您的要求与ImageView对齐。如果给ImageView设置背景色,您会看到它与TextView占据相同的区域。只是实际图像按照您的要求在视图中居中


根据需要,您可以继续使用scaleType=fitCenter或centerInside。无论是裁剪还是拉伸图像,您的文本视图都将保持对齐。

好的,已经三年了,您可能早就知道了。但当您指定adjustviewBounds=true时,您已经完成了一半。您只需更改ImageView布局的宽度和高度,即可同时包装内容

您的TextView正在按照您的要求与ImageView对齐。如果给ImageView设置背景色,您会看到它与TextView占据相同的区域。只是实际图像按照您的要求在视图中居中


根据需要,您可以继续使用scaleType=fitCenter或centerInside。无论是裁剪还是拉伸图像,您的TextView都将保持对齐。

当您尝试使用android:background=“@drawable/square”?如何将视图与ImageView对齐?那么您的实际意思是什么?您的TextView按照xml-alignRight和alirnTop中的规范正确对齐。您希望在何处以及如何对齐。我希望将textview与实际图像对齐。当您尝试使用android:background=“@drawable/square”?“如何将视图与ImageView对齐”时会发生什么情况?那么您的实际意思是什么?您的textview按照xml-alignRight和alirnTop中的规范正确对齐。要对齐的位置和方式。我要将文本视图与实际图像对齐。如果指定“中心裁剪”,则小于父容器的图像将不会放大。如果指定“中心裁剪”,则小于父容器的图像将不会放大。