Sobes.tech
Middle

Wie würdest du TextView mit einer bestimmten Methode erweitern?

sobes.tech KI

Antwort von AI

Sie können TextView erweitern, indem Sie eine eigene Klasse erstellen, die von TextView erbt, und die erforderlichen Methoden überschreiben, z.B. onDraw() oder onMeasure(). Zum Beispiel:

public class CustomTextView extends androidx.appcompat.widget.AppCompatTextView {

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

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

    public CustomTextView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }

    private void init() {
        // Zusätzliche Initialisierungslogik, falls erforderlich
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        // Fügen Sie Ihre eigene Zeichenlogik hinzu, z.B. Rahmen oder Unterstreichung
        Paint paint = new Paint();
        paint.setColor(Color.RED);
        paint.setStyle(Paint.Style.STROKE);
        paint.setStrokeWidth(2);
        canvas.drawRect(0, 0, getWidth(), getHeight(), paint);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        // Fügen Sie Ihre eigene Logik zum Messen der View-Größen hinzu
        int width = getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec);
        int height = getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec);
        setMeasuredDimension(width, height);
        // Sie können die gemessenen Größen bei Bedarf ändern
    }
}

In diesem Beispiel erbt die Klasse CustomTextView von AppCompatTextView. Die Methode onDraw() wurde überschrieben, um einen roten Rahmen um den Text hinzuzufügen, und onMeasure() bleibt unverändert, zeigt aber die Möglichkeit, sie anzupassen, um die Größen zu konfigurieren.

Um eine benutzerdefinierte TextView in XML zu verwenden, geben Sie den vollständigen Klassennamen an:

<com.ihre_package.CustomTextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hallo, benutzerdefinierte TextView!" />

Ersetzen Sie com.ihre_package durch den Pfad zu Ihrem Paket.