2015-07-30 20 views
16

Jestem nowy w programowaniu Android. Pracuję nad prostą aplikacją. Mam przycisk, który jest przezroczysty i ma ikonę i tekst. Chcę podkreślić tekst przycisku, ale nie byłem w stanie tego zrobić. Poniżej jest moje kodu xml:Jak podkreślić tekst przycisku w systemie Android?

<Button 
android:id="@+id/park" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:drawableLeft="@drawable/park" 
android:text="@string/button_name" 
android:background="#00000000" 
android:textColor="#000000"/> 

a plik ma ciąg:

<resources> 

<string name="button_name"><u>parking areas</u></string> 
</resources 

Ten approa ch pracuje w TextView ale nie w przycisku.

-ma sugestia?

+1

Proszę spojrzeć http://stackoverflow.com/questions/8033316/to-draw-an-underline-below-the-textview-in-android/8033336#8033336 – Nivedh

+0

Tak, Przeszedłem już przez ten artykuł. To jest dla textview, w którym to przypadku działa idealnie. Ale ta sama metoda nie działa dla tekstu przycisku – user3303274

Odpowiedz

38
Button button = (Button) findViewById(R.id.park); 
button.setPaintFlags(button.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); 
+1

Zajęło mi dużo czasu, aby wrócić! Ale teraz, zdobywając więcej doświadczenia z Androidem, zdałem sobie sprawę, że to rozwiązanie sprawdzi się doskonale. Dzięki za pomoc. – user3303274

3

Użyj tego:

TextView txt=(TextView)findViewById(R.id.txt); 
     String styledText = "<u>parking areas</u>"; 
     txt.setText(Html.fromHtml(styledText), TextView.BufferType.SPANNABLE); 
8

ten powinien dokonać TekstNaPrzyciskubold, podkreślił i kursywa w tym samym czasie.

strings.xml

<resources> 
    <string name="register"><u><b><i>Copyright</i></b></u></string> 
</resources> 

Aby ustawić ten ciąg do TextView, zrób to w swoim main.xml

<?xml version="1.0" encoding="utf-8"?> 
<Button xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/btn1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:text="@string/register" /> 
+0

Nie widzę żadnej różnicy między tobą a kodem. Jest to bezpośrednia kopia odpowiedzi z innego artykułu przepływu. nie działał – user3303274

+0

Ten fragment kodu działał również dla przycisków. Jaką wersję systemu operacyjnego używasz? –

2
Button button= (Button) findViewById(R.id.park); 
SpannableString content = new SpannableString("Content"); 
content.setSpan(new UnderlineSpan(), 0, content.length(), 0); 
button.setText(content); 
3

Nie można ustawić podkreślenie od plik xml. Aby ustawić podkreślenie za pomocą kodu, musisz ustawić flagę podkreślenia na przycisku.

Button button = (Button) findViewById(R.id.park); 
button.setPaintFlags(button.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); 
+0

Wypróbowałem twój kod. Ale błąd w Paint.UNDERLINE_TEXT_FLAG - jakiś pomysł? – user3303274

+0

spróbuj dodać import android.graphics.Paint. Jeśli nadal pojawia się błąd, podaj szczegóły błędu –

Powiązane problemy