2012-06-26 11 views
5

Gibt es einen einfachen Weg, wie schräg auf TextView streichen? Jetzt verwende ich diesen Code:Wie man schräg auf TextView durchschlägt

textview.setPaintFlags(textview.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); 

Aber ich brauche etwas wie folgt aus:
enter image description here
Ich bin nicht sehr vertraut mit Lack-API, wie man einfach achive dies so wird jede Hilfe dankbar.
Danke.

+0

Hallo dies lesen http://stackoverflow.com/questions/3881553/is-there-an-easy-way-to-strike-through-text-in-an-app-widget – iNan

+0

Ich sah dieser Post, aber ich brauche es schräg. Ich habe vorher versucht, 9patch zu verwenden, aber das Ergebnis sieht hässlich aus. – Warlock

Antwort

9

Es ist ziemlich einfach mit einer benutzerdefinierten TextView Klasse. Weitere Informationen hierzu finden Sie in der Dokumentation unter Canvas guide. Beachten Sie die Kommentare, wo Sie die Farbe/Breite ändern können:

public class ObliqueStrikeTextView extends TextView 
{ 
    private int dividerColor; 
    private Paint paint; 

    public ObliqueStrikeTextView(Context context) 
    { 
     super(context); 
     init(context); 
    } 

    public ObliqueStrikeTextView(Context context, AttributeSet attrs) 
    { 
     super(context, attrs); 
     init(context); 
    } 

    public ObliqueStrikeTextView(Context context, AttributeSet attrs, int defStyle) 
    { 
     super(context, attrs, defStyle); 
     init(context); 
    } 

    private void init(Context context) 
    { 
     Resources resources = context.getResources(); 
     //replace with your color 
     dividerColor = resources.getColor(R.color.black); 

     paint = new Paint(); 
     paint.setColor(dividerColor); 
     //replace with your desired width 
     paint.setStrokeWidth(resources.getDimension(R.dimen.vertical_divider_width)); 
    } 

    @Override 
    protected void onDraw(Canvas canvas) 
    { 
     super.onDraw(canvas); 
     canvas.drawLine(0, getHeight(), getWidth(), 0, paint); 
    } 
} 

Sie können es in einem Layout-Datei verwenden, indem Sie voll und ganz die Ansicht mit Ihrem Paket qualifizieren, wie folgt aus:

<your.package.name.ObliqueStrikeTextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="1234567890" 
     android:textSize="20sp"/> 

Hier ist das Endergebnis :

Screenshot

+0

Genau das, was ich gesucht habe. Ich füge einfach etwas "Anti-Analyse" hinzu, um es besser aussehen zu lassen. Vielen Dank! – Warlock

Verwandte Themen