Как я могу заставить мой imageView прокручиваться как по горизонтали, так и по вертикали?

У меня есть изображение, которое содержит текст и отлично отображается на устройствах с большим экраном, но на экранах меньшего размера текст не читается. Я решил использовать один размер и прокручивать на меньших экранах. Я использовал приведенный ниже код, чтобы установить как вертикальную, так и горизонтальную прокрутку, но она будет прокручиваться только по вертикали.

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:scrollbars="vertical">
    <HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="820px"
        android:layout_height="fill_parent">
        <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:paddingLeft="@dimen/activity_horizontal_margin"
            android:paddingRight="@dimen/activity_horizontal_margin"
            android:paddingTop="@dimen/activity_vertical_margin"
            android:paddingBottom="@dimen/activity_vertical_margin"
            tools:context=".CategoriesActivity">
.
.
.
            <ImageView
                android:id="@+id/termsImg"
                android:layout_width="450dp"
                android:layout_height="600dp"
                android:layout_below="@+id/headerPanel"
                android:background="@drawable/screen1" />
    </HorizontalScrollView>
</ScrollView>

Горизонтальная прокрутка работает на больших экранах, но не на экранах размером 240 или 320.

Что мне нужно изменить, чтобы мой imageView мог прокручиваться как по горизонтали, так и по вертикали?


person user616076    schedule 12.08.2015    source источник
comment
Прежде всего, вам не нужно объявление xmlns: android в каждом теге Xml. Оно должно присутствовать только в теге ScrollView, т.е. первый родитель должен содержать эту строку.   -  person Sanjeev    schedule 12.08.2015


Ответы (1)


Просто сделай это.

<ScrollView
    android:id="@+id/layout0"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:id="@+id/layout1"
        android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <HorizontalScrollView
            android:id="@+id/layout2"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <LinearLayout
                android:id="@+id/layout3"
                android:orientation="horizontal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
                <ImageView
                    <!-- Your ImageVIew -->
                </ImageVIew>
            </LinearLayout>

        </HorizontalScrollView>

    </LinearLayout>

</ScrollView>

Но, как видите, это кажется очень неэффективным. Вы можете решить вашу проблему, увеличив размер изображения до подходящего scaleType и используя один ScrollView.

person Desmond Yao    schedule 12.08.2015