2013-04-22 10 views
5

Otomatik tamamlama ve metin kutularına sahip bir linearLayout var. Doğrusal dizilimde bir şekil (dikdörtgen) eklemek istiyorum. Bunu nasıl başarabilirim. Ben android için yeni biriyim.LinearLayout Android'e Shape Ekleme 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

gitmek yardımcı olabilir want.Hope herhangi bir şekil çizmek için LinearLayout sınıfını uygulayarak özel bir görünüm oluşturmak ve) (MTD OnDraW geçersiz kılmak için salık verebilir: //www.gadgetsaint.com/tips/dynamic-square-rectangular-layouts-android/#.WRRjMvl96H s – ASP

cevap

9

Stili eklemek istediğiniz bileşenin arka planı için ShapeDrawable kullanmalısınız.

XML'de, aşağıdaki sözdizimi ile birlikte bir şekil çizilebilir oluşturulur (bu, yuvarlatılmış köşelere sahip bir dikdörtgen gösterir, ancak bunu istediğiniz şekilde görüntülemek için yapabileceğiniz çok şey vardır). Bu dosya (adlandırılmış background_square.xml ya da herneyse) senin çekilebilir klasörde konulmalıdır:

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

Sonra bir Görünüm eklemek istediğinizde, size XML aşağıdaki sözdizimini kullanabilirsiniz:

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

mizanpaj işleminde hesaplama açısından daha hafiftir. Bu şekli bir ImageView kaynağı olarak kullandım, ancak aksi takdirde iyi olur! Teşekkürler! –

+0

Bu arka planı herhangi bir görünüme ekleyebilirsiniz - ImageView, TextView, LinearLayout (bu durumda, tüm Görünümler, Android ile ilgili olduğu kadarıyla aynıdır). – Booger

2

Sen basitçe düzeni içinde yuvalanmış bir düzen (LinearLayout demek) ekleyin dikdörtgen eklemek istiyorsanız

altında böyle bir şey yapmak ve android:background="yourcolor" ayarlayabilirsiniz // Eğer hash kullanarak renk ekleyebilirsiniz renk değerleri

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

Boyut, kenar boşlukları vb. gibi tüm göreceli özellikleri değiştirirsiniz

+0

Aslında doğru yolda ancak bir ne eklemek istiyorsanız sadece bir LinearLayout kullanmak için bir nokta yoktur. View View'u kullanın, bir LineraLayout'u biçimlendirmek için kullanacağınız tüm temel özelliklere sahiptir ve muhtemelen –

0

u bu http kontrol dinamik dikdörtgen düzeni için doğru yönde