2

我正在尝试为我的应用程序构建一个 gui。它由两个图像组成,一个在另一个之上。底部图像需要可滚动,顶部图像需要固定。

这是视图的当前布局 xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="right"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="right"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/button_load"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Load" />

        <Button
            android:id="@+id/button_save"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Save" />
    </LinearLayout>

    <uk.co.test.EditorView
        android:id="@+id/EditorView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top" />

    <HorizontalScrollView
        android:id="@+id/scroll_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="bottom" >

        <ImageView
            android:id="@+id/image_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:src="@drawable/imagemdpi" />
    </HorizontalScrollView>

</LinearLayout>

使用这种布局,底部图像不会滚动,它被压缩到屏幕的宽度。如果我删除 EditorView,它会滚动。我怎样才能让gui按我的意愿行事?

感激地收到任何帮助。谢谢

4

1 回答 1

2

我实际上不确定为什么删除 EditorView 使它起作用。此外,我在您的布局中只看到一个图像视图。但是为了使 ImageView 水平滚动,我会将滚动视图的 layout_width 更改为“match_parent”,并为您的图像视图添加比例类型。

(见:https ://developer.android.com/reference/android/widget/ImageView.ScaleType.html )

我会尝试“中心”或“矩阵”,尽管通常我必须玩弄这些才能让它按照我想要的方式工作。所以:

<HorizontalScrollView
    android:id="@+id/scroll_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="bottom" >

    <ImageView
        android:id="@+id/image_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="center"
        android:layout_gravity="bottom"
        android:src="@drawable/imagemdpi" />
</HorizontalScrollView>

通常,对于滚动视图,您希望 match_parent 用于滚动视图的大小,而 wrap_content 用于正在滚动的视图。滚动视图将允许被包装的视图变得比它自己的边界更大,但是如果滚动视图变得比屏幕边界更大,它就不会滚动,因为它认为它已经显示了所有内容。

于 2013-05-06T21:56:53.033 回答