Добавление формы в Android LinearLayout
У меня есть linearLayout с автозаполнением и текстовыми полями. Я хочу вставить форму (прямоугольник) в линейное расположение. Как я могу достичь этого. Я новичок в Android.
<?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="wrap_content"
android:padding="5dp"
android:id="@+id/layout">
<AutoCompleteTextView android:id="@+id/autocompleteCountry"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/CONTRY_LABEL"
/>
<AutoCompleteTextView android:id="@+id/locationAutoCompleteFrom"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/from"
android:visibility="gone"
/>
<AutoCompleteTextView android:id="@+id/locationAutoCompleteTO"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/to"
android:visibility="gone"
/>
<!-- <Button android:id="@+id/buttonRoute"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/buttonRouteText"
android:enabled="false"
android:clickable="true"
/>
-->
3 ответа
Вы должны использовать ShapeDrawable для фона компонента, к которому вы хотите добавить стиль.
Рисуемая форма создается в XML со следующим синтаксисом (здесь показан прямоугольник со скругленными углами, но есть много способов, которые можно настроить, чтобы выглядело так, как вы хотите). Этот файл (с именем background_square.xml или любым другим) должен быть помещен в вашу папку для рисования:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="5dp" />
<solid
android:color="@color/primary_grey" />
</shape>
Затем, когда вы захотите добавить его в представление, вы можете использовать следующий синтаксис в вашем XML:
android:background="@drawable/background_square"
Вы можете сделать что-то вроде ниже
если вы хотите добавить прямоугольник, просто добавьте вложенный макет (скажем, линейный макет) в свой макет и установите android:background="yourcolor"
// Вы можете добавить цвет используя значения цвета хеша
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:id="@+id/layout">
<AutoCompleteTextView android:id="@+id/autocompleteCountry"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/CONTRY_LABEL"
/>
<AutoCompleteTextView android:id="@+id/locationAutoCompleteFrom"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/from"
android:visibility="gone"
/>
//suppose you want to add your rectangle here
<LinearLayout
android:id="@+id/rectangle"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="yourcolor"
>
</LinearLayout>
Вы изменяете все относительные свойства, как хотите, например, размер, поля и т. д
Я могу порекомендовать создать собственное представление путем реализации класса Linearlayout и переопределить ondraw() mtd, чтобы нарисовать любую фигуру, которую вы хотите. Надеюсь, что это может помочь в правильном направлении