Я пытаюсь сделать макет Android, как показано ниже. У меня есть пара вопросов:
1 - что такое элемент, который используется FB для сообщений? То есть, это не похоже на текстовое представление, но элемент выглядит так, что он разделяет каждое сообщение с помощью разделительной линии. Кроме того, стиль текста отличается для имени человека и того, как давно они были размещены. Я хочу дублировать это (минус-изображения), но я не могу найти нужные элементы пользовательского интерфейса.
Наконец, есть ли хорошие учебники/примеры того, как делать приятные, профессиональные макеты, такие как приложения на рынке? Учебники, которые я нашел в макетах, действительно являются основными. Я хотел бы понять, какие элементы существуют, что означают все атрибуты и примеры, и т.д. До сих пор я мог видеть только возможности других приложений. Я бы хотел иметь справочник или какой-то тип справочного руководства.
Для "причудливых" текстовых представлений вы можете создать линейный макет, на котором размещен < RelativeLayout >:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_weight="0">
<ImageView
android:id="@+id/userPhoto"
android:layout_height="64dip"
android:layout_width="64dip"
/>
<TextView
android:id="@+id/userFullName"
android:layout_height="25dp"
android:layout_width="fill_parent"
android:layout_marginLeft="70dp"
/>
</RelativeLayout>
После того, как у вас есть относительный макет, вы можете добавить в него разные виды, чтобы создать своего рода customeized view.
Что касается хороших примеров, я бы посмотрел на эту книгу. Это легко понять и очень полезно в таких вещах.
Я нашел действительно полезное руководство для решения проблемы в дизайне ListView Row, немного похожего на ваше. Это немного объясняет, как сделать загрузку Async Image, но первая часть вам поможет.
Кроме того, я могу ошибаться (я все еще немного новичок в этом), но я думаю, что в ответе выше отсутствует TextView для фактического сообщения, кроме userName и относительных положений элементов, поскольку это относительный макет. Что-то вроде:
<TextView
android:id="@+id/userName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/userPhoto"
android:layout_toRightOf="@id/userPhoto"
android:textSize="17dp"
android:textStyle="bold" />
<!-- actual message -->
<TextView
android:id="@+id/message"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/userName"
android:layout_marginTop="1dip"
android:layout_toRightOf="@id/userPhoto"
android:textSize="15dp" />
Ключом в организации относительного макета является:
android:layout_alignTop="@id/userPhoto" android:layout_toRightOf="@id/userPhoto"
и
android:layout_below="@id/userName" android:layout_toRightOf="@id/userPhoto"
Возможно, я ошибаюсь, но если это помогает, отлично! Просто добавив свой бит к другому ответу. ура