Рисование линии переменной длины в LinearLayout - PullRequest
0 голосов
/ 01 августа 2011

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

enter image description here

Конечно, представления перемещаются, когда пользователь перемещает устройство, так что длина линии изменяется.

Как добавить это в мой ARView?

public class ARView extends LinearLayout
{    
    public float azimuth = 0;        
    public float inclination = 0;
    public Location location;
    public int position;

    TextView title, type, distance;

    public int X, Y;

    public ARView(final Context context, int ind)
    {        
        super(context);  
        getLayoutInflater().inflate(R.layout.ar_item, this ,true);
        LayoutInflater inflater = (LayoutInflater)   getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        inflater.inflate(R.layout.ar_item, null);

        title = (TextView) findViewById(R.id.title);
        type = (TextView) findViewById(R.id.type);
        distance = (TextView) findViewById(R.id.distance);
    }
}

ar_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ar_item" android:layout_width="202dp"
    android:layout_height="62dp" android:background="@drawable/bg_item_ar"
    android:clickable="true">

    <LinearLayout android:id="@+id/container"
        android:orientation="vertical" android:layout_width="164dp"
        android:layout_height="fill_parent" android:paddingBottom="5dp"
        android:paddingLeft="8dp" android:paddingTop="5dp"
        android:paddingRight="6dp" android:clickable="true">

        <TextView android:id="@+id/title" android:layout_width="fill_parent"
            android:layout_height="18dp" android:textSize="13sp"
            android:textColor="#FFFFFF" android:textStyle="bold"/>

        <TextView android:id="@+id/type" android:layout_width="fill_parent"
            android:layout_height="18dp" android:textSize="13sp"
            android:textColor="#FFFFFF"/>

        <TextView android:id="@+id/distance"
            android:layout_width="fill_parent" android:layout_height="16dp"
            android:textSize="12sp" android:textColor="#C6C6C6" />

    </LinearLayout>

</LinearLayout>

1 Ответ

0 голосов
/ 01 августа 2011

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

...