ScaleToFit Макет Quandry - PullRequest
       1

ScaleToFit Макет Quandry

0 голосов
/ 22 сентября 2011

Я пытаюсь узнать больше о системе макетов Android; это опыт обучения для меня. В настоящее время я пытаюсь создать макет, который в основном состоит из двух линейных макетов: вертикальный fill_parent с горизонтальной внутренней fill_width, чтобы у меня был баннер ImageView [во внешнем], а затем семь столбцов ImageButton, заполняющих ширину вида [во внутреннем].

Моя проблема возникает, так как мне нужно, чтобы содержимое ImageButton пропорционально заполняло весь вид кнопки [столбцы], но учитывало границы ImageButton, так что если либо небольшое или Большое изображение является источником, оно будет отцентрировано в ImageButton, заполняя как его вертикальные, так и горизонтальные размеры, и будет отцентрировано. -Я не могу контролировать исходные изображения.

Я думал, что CenterCrop сделает это, но нада для меня ...

ImageView.ScaleType CENTER_CROP Равномерно масштабируйте изображение (сохраняйте соотношение сторон изображения), чтобы оба размера (ширина и высота) изображения были равны или превышали соответствующий размер вида (за вычетом отступов).

Любые связанные мысли о том, что у меня есть; игнорируйте внешний внешний вид, пожалуйста:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout android:id="@+id/linearLayout2"
        android:layout_height="fill_parent" android:orientation="vertical"
        android:layout_width="fill_parent" android:background="@color/special_grey"
        android:layout_margin="0dp">

        <ImageView android:id="@+id/imageView1"
            android:layout_height="wrap_content" android:layout_gravity="center"
            android:layout_width="wrap_content" android:layout_margin="10dp"
            android:src="@drawable/banner_logo" />

        <LinearLayout android:id="@+id/linearLayout1"
            android:layout_margin="5dp" android:layout_gravity="center"
            android:layout_width="fill_parent" android:layout_height="250dp" android:baselineAligned="true">
            <ImageButton android:minWidth="20dp"
                android:adjustViewBounds="true" android:layout_margin="0dp"
                android:src="@drawable/sample_0" android:maxWidth="100dp"
                android:id="@+id/imageButton1" android:layout_weight="1"
                android:scaleType="centerCrop" android:cropToPadding="true"
                android:layout_gravity="center" android:layout_width="0dp"
                android:padding="0dp" android:layout_height="250dp" />
            <ImageButton android:minWidth="20dp"
                android:adjustViewBounds="true" android:layout_margin="0dp"
                android:src="@drawable/sample_1" android:maxWidth="100dp"
                android:id="@+id/imageButton2" android:layout_weight="1"
                android:cropToPadding="true"
                android:layout_width="0dp"
                android:padding="0dp" android:layout_height="250dp" android:scaleType="centerCrop" android:scrollbarAlwaysDrawHorizontalTrack="false" android:scrollbarAlwaysDrawVerticalTrack="false" android:layout_gravity="fill"/>
            <ImageButton android:minWidth="20dp"
                android:adjustViewBounds="true" android:layout_margin="0dp"
                android:src="@drawable/sample_2" android:maxWidth="100dp"
                android:id="@+id/imageButton3" android:layout_weight="1"
                android:cropToPadding="true" android:layout_gravity="center"
                android:layout_width="0dp" android:padding="0dp"
                android:layout_height="250dp" />
            <ImageButton android:minWidth="20dp"
                android:adjustViewBounds="true" android:layout_margin="0dp"
                android:src="@drawable/sample_3" android:maxWidth="100dp"
                android:id="@+id/imageButton4" android:layout_weight="1"
                android:cropToPadding="true" android:layout_gravity="center"
                android:layout_width="0dp" android:padding="0dp"
                android:layout_height="250dp" />
            <ImageButton android:minWidth="20dp"
                android:adjustViewBounds="true" android:layout_margin="0dp"
                android:src="@drawable/sample_4" android:maxWidth="100dp"
                android:id="@+id/imageButton5" android:layout_weight="1"
                android:cropToPadding="true" android:layout_gravity="center"
                android:layout_width="0dp" android:padding="0dp"
                android:layout_height="250dp" />
            <ImageButton android:minWidth="20dp"
                android:adjustViewBounds="true" android:layout_margin="0dp"
                android:src="@drawable/sample_5" android:maxWidth="100dp"
                android:id="@+id/imageButton6" android:layout_weight="1"
                android:cropToPadding="true" android:layout_gravity="center"
                android:layout_width="0dp" android:padding="0dp"
                android:layout_height="250dp" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

1 Ответ

0 голосов
/ 22 сентября 2011

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

Я думаю, что у вашего linearLayout1 отсутствует ориентация, но это не должно быть критичным, поскольку он должен по умолчанию иметь вертикальную (я думаю).

Не могли бы вы поместить изображение вашего ImageView какbackgroundImage для вашего linearLayout2?Тогда вы можете пропустить ImageView.

Тогда я бы поместил большинство атрибутов ImageButton в определение стилей.Это позволяет вам намного проще изменять настройки и очищать ваш код ([Разработчики Android: применение стилей и тем]) 1

Как я уже говорил, возможно, вы могли бы немного уточнитьбольше о том, как это должно выглядеть, тогда легче будет помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...