2013-01-13 21 views
14

Mam projekt, który wymaga tła podobnego do poniższego obrazka dla numeru po prawej stronie. Czy możemy to osiągnąć w Androidzie?Android TextView Background

enter image description here

będę musiał zrobić zdjęcie 9 łat i ustawić go jako tło?

+0

Jeśli twoje teksty nie są gonna stałej szerokości, na pewno trzeba użyć 9patch ... – yahya

Odpowiedz

31

Najpierw utwórz kształt, aby mieć zaokrąglone rogi.

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#FFFFFF"/> 
    <corners android:radius="5px"/> 
    <padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp" /> 
</shape> 

Następnie zastosować to jako tło do swoich poglądów:

<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/rounded_edges"> 
    <TextView 
     android:id="@+id/mytext" 
     android:layout_width="200dip" 
     android:layout_height="wrap_content" 
     android:text="blah blah blah blah" 
     android:padding="6dip" 
     android:textColor="#000000" /> 
</LinearLayout> 

Być może trzeba zrobić kilka szczypanie. Możesz nawet być w stanie odrzucić LinearLayout i ustawić android:background z TextView do @drawable/rounded_edges

+0

dziękuję będę próbować to od razu i wróć do ciebie. jeśli przypiszesz to do widoku tekstowego. czy będę musiał podać podkładkę? –

+0

Zależy. Jeśli twój tekst jest przecinany przez rogi, powinieneś dać trochę obicia. –

+4

'android: radius =" 5px "'. Dlaczego nie "5dp"? –

3

Najpierw utwórz rozciągliwej zasobu.

<?xml version="1.0" encoding="utf-8"?> 
<!-- res/drawable/rounded_textview.xml --> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" android:padding="10dp"> 
<solid android:color="#cccccc"/> 
    <corners 
    android:bottomRightRadius="15dp" 
    android:bottomLeftRadius="15dp" 
    android:topLeftRadius="15dp" 
    android:topRightRadius="15dp"/> 
</shape> 

następnie odwołać tę rozciągliwej w układzie:

<?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" 
    > 
<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:padding="5dip" 
    android:gravity="center" 
    android:background="@drawable/rounded_textview" /> 
</LinearLayout> 

jeden z dobrych Reference:

TextView with rounded corners

Dzięki.

+0

@Harsha M V zobacz moją edycję Dodałem też jeden dobry odnośnik. –

+0

Czy dobrze jest dodać dopełnienie w widoku tekstowym lub w kształcie? –

+1

@HarshaMV tak w większości przypadków. Kształt wpływa na przestrzeń tekstową, więc możliwe, że tekst zostanie odcięty. Jest to jedyny powód do wyściełania. –

0

wiem, jest to stara sprawa, ale dla każdego, kto zmaga się z tym, zdecydowanie polecam ViewBadger library

Powiązane problemy