2016-08-05 16 views
-2

Ich habe mehrere Schaltflächen in meiner Anwendung, und ich versuche, sie zu stylen.Benutzerdefinierte Android-Taste/Textansicht unterstreichen

Die Idee ist der Standardzustand ist Klartext und der Down-Zustand ist unterstrichen. Die Unterstreichung sollte eine andere Farbe haben als der Text, dicker, gerundet und die Länge des Wortes. Ich habe versucht, dies mit Paint zu erreichen, aber ohne Erfolg.

Vielen Dank.

+0

Was haben Sie bisher versucht? Bitte zeigen Sie uns Ihre Bemühungen, da es sich nicht um einen Software-Schreibservice handelt. Sie sollten [ask] zuerst lesen und [mcve] in jeder Frage angeben. – xenteros

+0

Ich löste das, indem ich Folgendes änderte: http://stackoverflow.com/questions/2394935/can-i-underline-text-in-android-layout/18735350#18735350 – Cynapsys

+0

Sie können dann Ihre Frage als ein Duplikat markieren oder lösche es. – xenteros

Antwort

0

Fabrikat ziehbar dieser Art und fügen Sie es als Hintergrund von Button oder TextView A-Linie ziehbar wie folgt: -

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="rectangle"> 
      <solid android:color="@android:color/transparent" /> <!--background color of box--> 
     </shape> 
    </item> 

    <item 
     android:top="-2dp" 
     android:right="-2dp" 
     android:left="-2dp" 
     android:bottom="5dp"> 
     <shape> 
      <solid android:color="@android:color/transparent" /> 
      <stroke 
       android:width="3dp" 
       android:color="@android:color/black" /> <!-- color of stroke --> 
     </shape> 
    </item> 
</layer-list> 
+0

Danke Aditi. Wie würde ich die Enden des Strichs umrunden und den vertikalen Abstand vom Text mit dieser Methode steuern. – Cynapsys

0

Dies ist keine gute Idee, aber ...

sollten Sie Farbe verwenden Selektor für Text und behandeln Unterstreichen in OnClickListener.

<string name="label_underlined"><u>This text has an underscore</u></string> 
<string name="label_default">Default text</string> 

button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       v.setChecked(v.isChecked()); 
       if (v.isChecked()){ 
        button.setText(getString(R.string.label_underlined)); 
       } else { 
        button.setText(getString(R.string.label_default)); 
        } 
      } 
     });