Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.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 - Fatal编程技术网

Android图像缩放和对齐

Android图像缩放和对齐,android,android-layout,Android,Android Layout,我试图显示一个缩放的图像,同时保留其纵横比,但同时将其与底部对齐 使用android:scaleType=“FitXY”会使图像垂直和水平居中,因此不会与底部对齐。 使用“FitEnd”会使图像与右下角对齐,因此它不会水平居中 有没有办法绕过这个问题?也许使用一些矩阵来缩放它(scaleType=“矩阵”) 编辑:澄清一下我到底想要什么 我有一个ImageView,它的布局(位置、大小、重力等)我无法更改。我想加载一个位图作为其源图像,但要将该位图缩放到ImageView的大小(保留位图的纵横比

我试图显示一个缩放的图像,同时保留其纵横比,但同时将其与底部对齐

使用android:scaleType=“FitXY”会使图像垂直和水平居中,因此不会与底部对齐。 使用“FitEnd”会使图像与右下角对齐,因此它不会水平居中

有没有办法绕过这个问题?也许使用一些矩阵来缩放它(scaleType=“矩阵”)

编辑:澄清一下我到底想要什么

我有一个ImageView,它的布局(位置、大小、重力等)我无法更改。我想加载一个位图作为其源图像,但要将该位图缩放到ImageView的大小(保留位图的纵横比),然后与ImageView的底部对齐


编辑:在尝试了我能想到的一切(以及这里建议的一切)之后,我们最终对ImageView进行了分类,并在onDraw中自己进行了缩放/转换。

未经测试,但尝试添加:

android:layout_gravity="bottom|center_horizontal"

与FitXY缩放一起添加到图像视图。

尝试使用
android:scaleType=“centerInside”
而不是
FitXY


Blrfl Labs应用程序中使用的布局,用于缩放图像以适应布局提供的区域,而无需增大纵横比:

    <ImageView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_weight="1.0"
            android:gravity="center"
            android:src="@drawable/blah_blah_blah"
            android:scaleType="centerInside"
            android:adjustViewBounds="false"
    />

您可以使用

android:layout_centerHorizontal="true"
android:scaleType="fitEnd"

如果您的
ImageView
位于
RelativeLayout

中心内部,则不会缩放图像,只需将其居中,而不是根据文档:“均匀缩放图像(保持图像的纵横比),以使两个尺寸(宽度和高度)都相同。”图像的尺寸将等于或小于视图的相应尺寸(减去填充);实际布局添加到上述答案中。似乎centerInside只会向下缩放,而不会向上缩放。你可以试试fitCenter,这对我很有用。不幸的是,我无法更改ImageView的大小和位置。我想要的是加载的图像被缩放,然后粘贴到图像的底部。这就是layout_gravity所做的。它会影响容器内图像的重力,实际上不会改变容器本身的位置。是的,但所有布局属性都是从视图所在的布局“继承”的。具体来说,如果图像位于线性布局中,这将起作用,但如果图像位于相对线布局中,则不起作用。然而,现在我想了想,也许我可以添加一个线性布局来包装它-这可能会解决它。