Как должен выглядеть мой Android-макет? - PullRequest
0 голосов
/ 07 сентября 2011

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

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


Вот как я хочу, чтобы мой макет разделял представления. :

enter image description here


Вот так это будет выглядеть с нарисованными видами. Очевидно, фиолетовые и синие границы будут фоновым цветом (сероватым). Данные выше просто отображают y-точку пересечения графика, нарисованного соответствующим цветом. (Таким образом, будут отображаться несколько графических представлений друг над другом)

enter image description here

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

EDIT

Используя TextViews, я могу придумать нечто похожее, используя следующий XML:

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

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <TextView
            android:text="Data Placeholder"
            android:background="#733674"
            android:textSize="15pt"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="20"/>

        <TextView
            android:text="Graph Placeholder"
            android:background="#374F82"
            android:textSize="15pt"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="80"/>

    </LinearLayout>

</LinearLayout>

Итак, единственный вопрос, который на самом деле остается, должен ли я использовать TextViews? Значение в моей деятельности я могу добавить свои собственные представления, где эти TextViews? Или я должен добавить свой собственный вид в XML?

Т.е.

    <DataView
        android:text="Data Placeholder"
        android:background="#733674"
        android:textSize="15pt"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="20"/>

    <GraphView
        android:text="Graph Placeholder"
        android:background="#374F82"
        android:textSize="15pt"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="80"/>

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

1 Ответ

1 голос
/ 07 сентября 2011

Попробуйте это: http://developer.android.com/resources/tutorials/views/hello-linearlayout.html

В нем содержится очень полезная информация, которая может помочь вам в отношении layout_weight, как упоминал Мичелл Бак в комментарии.

И вот страница для Hello Views: http://developer.android.com/resources/tutorials/views/index.html

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

Сначала я был совершенно ошеломлен всем кодом, который я не понимал (включая XML-файлы), но с небольшой практикой это стало очень легко - просто отнимало много времени.

Главное, что меня смущает, это то, какой вид View нужно вставить в раскладка. В примерах они используют TextView или ImageView, но мой пользовательский вид

Что ж, для вашего «Пользовательского представления данных» вы должны использовать LinearLayout с android:layout_width="fill_parent" и android:layout_height="fill_parent" и android:layout_weight="1" и android:background="#BA4AAB" (см. http://www.colorpicker.com/)

Тогда для вашего пользовательского графического представления я бы использовал: android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="4" android:background="#7D4ABA"

Обратите внимание, что значения layout_weight и background, которые я привел, являются своего рода предположениями, вам, возможно, придется настроить их так, чтобы они соответствовали вашим желаниям.

Два линейных макета, которые я упомянул, будут внутри одного большего LinearLayout с android:orientation="vertical"

Тогда для данных в верхней части вы бы использовали 4 текстовых представления, а в коде вы использовали бы setText (...) для этих текстовых представлений, чтобы вставить ваши данные.

В xml для textview1 вы должны добавить android:id="@+id/textview1", затем в коде добавить TextView textview1 = (TextView)findviewbyId(R.id.textview1); затем textview1.setText(myString);

Для графика в нижней части вы должны использовать 2 представления для основы графика и установить там android: layout_width и android: layout_height в соответствии с тем, что вам подходит, используя единицы измерения dip, dp или px.

Для линий, которые вы рисуете, я полагаю, вам придется использовать класс canvas с растровым изображением и вызвать canvas.drawLine(...) (см. http://developer.android.com/reference/android/graphics/Canvas.html)

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