2013-04-22 38 views
5

Mam linearLayout posiadające niektóre autouzupełniania i pola tekstowe. Chcę wstawić kształt (prostokąt) w Linelayout. Jak mogę to osiągnąć? Jestem nowym graczem na Androida.Dodawanie kształtu do 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" 
     /> 
    --> 

+0

na dynamicznym układzie prostokątnym, zaznacz to http: //www.gadgetsaint.com/tips/dynamic-square-rectangular-layouts-android/#.WRRjMvl96H s – ASP

Odpowiedz

9

Powinieneś użyć ShapeDrawable dla tła komponentu, do którego chcesz dodać styl.

Rysowanie kształtów jest tworzone w XML, z następującą składnią (ta pokazuje prostokąt z zaokrąglonymi rogami, ale jest wiele rzeczy, które można dostosować, aby wyglądały tak, jak chcesz). Plik ten (nazwany background_square.xml lub cokolwiek) należy umieścić w swoim rozciągliwej folderu:

<?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> 

Wtedy, gdy chcemy dodać go do widoku, można użyć następującej składni w pliku XML:

android:background="@drawable/background_square" 
+2

Użyłem tego kształtu jako źródła ImageView, ale poza tym jest w porządku! Dzięki! –

+0

Możesz dodać to tło do dowolnego widoku - ImageView, TextView, LinearLayout (w tym przypadku wszystkie widoki są takie same, jak w przypadku Androida). – Booger

2

można coś zrobić jak poniżej

jeśli chcesz dodać prostokąt wystarczy dodać układ zagnieżdżonych (powiedzieć linearlayout) w obrębie układu i ustawić android:background="yourcolor" // można dodać kolor za pomocą skrótu wartości kolorów

<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> 

zmieniasz wszystkie względne właściwości, jak chcesz rozmiar, marginesy itp.

+0

Właściwie jesteś na właściwej ścieżce, ale nie ma sensu używać LinearLayout, jeśli tylko chcesz dodać prostokąt. Zamiast tego użyj View, ma on wszystkie główne atrybuty, których użyjesz do stworzenia LineraLayout i prawdopodobnie jest lżejszy pod względem obliczeń w procesie układania. –

0

mogę polecić, aby utworzyć widok niestandardowy poprzez wdrożenie klasy Linearlayout i zastąpić OnDraw() MTD narysować dowolny kształt u want.Hope może to pomóc w iść w dobrym kierunku

Powiązane problemy