2

我已经阅读了有关支持不同屏幕密度的所有内容。而且,我已将显示的图像的适当变体提供给适当的文件夹。然而,我对某事感到困惑。ImageView 的文档说将 android:layout_width 和 android:layout_height 设置为 "fill_parent"/"match_parent" 将导致图像拉伸以填充屏幕。(这似乎是必要的,因为并非所有屏幕密度都提供相同大小/像素数的屏幕,我不希望那些额外的几个像素导致屏幕底部出现填充)这似乎在其他任何时候都有效,但不起作用对我来说,当 ImageView 放置在 Horizo​​ntalscrollview 内部并且图像的宽度比屏幕的宽度长时。

我的代码如下:(活动在我的清单中设置为横向)

<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/hscrollview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="0dp"
    android:fadingEdge="none"
    android:scrollbars="none"
    android:overScrollMode="never" >

<RelativeLayout 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="0dp"
    android:fadingEdge="none"
    android:scrollbars="none"
    android:overScrollMode="never" >

<ImageView
    android:id="@+id/MapImageView"
    android:src="@drawable/map"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent" />
</RelativeLayout>
</HorizontalScrollView>

编辑:我将 :src 替换为 :background 无效。

这是我在平板电脑等设备上获得的效果。理想情况下,我希望图像填满整个屏幕,就像下面那样,在具有典型 480x800 分辨率等的手机上。

这是我在平板电脑等设备上获得的效果。 理想情况下,我希望图像填满整个屏幕,就像在具有典型 480x800 分辨率等的手机上一样。

4

2 回答 2

7

尝试android:scaleType="fitXY"在您的ImageView.

于 2013-10-24T19:29:49.953 回答
0

这对我有用:

<ImageView
    android:id="@+id/main_imageView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="42dp"
    android:alpha="0.5"
    android:src="@drawable/img_alchemy2" />

它是一个纵向图像,在纵向模式下填充屏幕,在横向模式下它垂直填充而不水平拉伸。

于 2013-10-24T19:57:30.400 回答