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.