Android: какой вид я должен использовать для отображения текста и изображения? - PullRequest
1 голос
/ 31 марта 2010

Мое приложение показывает список элементов, где каждая строка представляет собой заголовок элемента без изображения, строка резервирует 70% пространства для текста и 30% для изображения. Представьте, как выглядит магазин приложений для iphone. Какой вид / макет рекомендуется для этой цели?

Я гуглил и нашел эту статью:

http://www.curious -creature.org / 2009/02/22 / андроид-макет-триков-1 /

Этот вид звучит хорошо?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"

android:padding="6dip">

<ImageView
    android:id="@+id/icon"

    android:layout_width="wrap_content"
    android:layout_height="fill_parent"

    android:layout_alignParentTop="true"
    android:layout_alignParentBottom="true"
    android:layout_marginRight="6dip"

    android:src="@drawable/icon" />

<TextView
    android:id="@+id/secondLine"

    android:layout_width="fill_parent"
    android:layout_height="26dip" 

    android:layout_toRightOf="@id/icon"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"

    android:singleLine="true"
    android:ellipsize="marquee"
    android:text="Simple application that shows how to use RelativeLayout" />

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"

    android:layout_toRightOf="@id/icon"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:layout_above="@id/secondLine"
    android:layout_alignWithParentIfMissing="true"

    android:gravity="center_vertical"
    android:text="My Application" />

Ответы [ 2 ]

1 голос
/ 31 марта 2010

Если под «тем, как выглядит магазин приложений iPhone», вы имеете в виду «почти каждый отдельный список» (ну, по крайней мере, насколько я могу судить по описанию, так и не увидев магазин приложений iPhone) ), кажется, есть только один способ, который работает. «Идеальным» решением было бы использование RelativeLayout, поскольку это позволяет располагать две строки текста рядом с изображением без необходимости сложной структуры макета. Однако, как вы можете видеть в этом вопросе и этом другом вопросе , кажется, с этим есть некоторая проблема. Итак, запасной вариант - использовать горизонтальный LinearLayout и вложить в него второй вертикальный LinearLayout, если вам нужно несколько строк текста. Посмотрите эти посты для более подробной информации о том, как должен выглядеть ваш LinearLayout.

Примечание: я предполагаю, что вы знаете, как использовать ListView. Если вы не знаете, как работают ListViews, я рекомендую эту статью в качестве хорошей отправной точки. Это немного старо, но все еще хорошо. Просто убедитесь, что вы прочитали его продолжения , которые объясняют, как использовать оптимизацию convertView.

Редактировать: Для всех, кто читает это, вот учебник по спискам с гораздо лучшим форматированием, облегчающим чтение.

1 голос
/ 31 марта 2010

ListView с пользовательским макетом для строки. При создании ListAdapter (SimpleAdapter / ArrayAdapter) вы можете передать макет в конструктор. Это действительно легко, если изображение всегда будет одинаковым, но если изображение будет изменяться, вам потребуется переопределить метод getView, чтобы создать представление для строки.

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