1

我希望图像拉伸/收缩以适合水平而不是垂直。无论如何实现这一点,最好通过xml,但动态也可以吗?

它必须是 LINEARLAYOUT 是关键。

4

3 回答 3

2

注 2:请参阅底部的更新以获取正确答案。

注意:对不起,我误读了这个问题,并看到您希望它向一个方向延伸。如果我想出一个答案,我会修改我的答案,但这至少会阻止它完全伸展。

您必须创建一个新的可绘制资源来实现此目的:

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/your_image" 
    android:tileMode="clamp" />

只需替换your_image为您的资源名称,将其保存在您的 drawables 文件夹中,并将其设置为背景。这应该在线性布局的左上角绘制图像,而不是重复。

更新:这将使图像水平拉伸,而不是垂直拉伸,并在线性布局的顶部对齐:

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/your_image" 
    android:gravity="fill_horizontal|clip_vertical|top"
    android:tileMode="disabled" />

很抱歉最初的混淆。

于 2012-09-10T19:09:32.290 回答
2

您可以将属性设置scaleTypeImageView。查看文档中的可能值。

一个常见的用途是 set scaleType="centerCrop",它将保持图像的纵横比,但缩放使得结果比例的宽度和高度将等于或大于您的实际ImageView宽度和高度。

如果要更改纵横比,可以使用scaleType="fitXY".

于 2012-09-10T17:34:06.847 回答
0

设置layout_widthmatch_parent和。layout_height_ wrap_content然后将 设置scaleTypeFIT_XY(全部用于ImageView自身,而不是LinearLayout)。

于 2012-09-10T17:33:30.483 回答