Middle
Kako biste proširili TextView koristeći određenu metodu?
sobes.tech АИ
Одговор од АИ
Možete proširiti TextView kreiranjem sopstvene klase koja nasleđuje TextView i prepisivanjem potrebnih metoda, na primer, onDraw() ili onMeasure(). Na primer:
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() {
// Dodatna logika inicijalizacije, ako je potrebna
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// Dodajte svoju logiku crtanja, na primer, okvir ili podvlačenje
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);
// Dodajte svoju logiku za merenje dimenzija
int width = getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec);
int height = getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec);
setMeasuredDimension(width, height);
// Možete promeniti izmerene dimenzije ako je potrebno
}
}
U ovom primeru, klasa CustomTextView nasleđuje od AppCompatTextView. Metoda onDraw() je prepisana da doda crvenu ivicu oko teksta, a onMeasure() ostaje nepromenjena, ali pokazuje mogućnost prepisivanja za prilagođavanje dimenzija.
Za korišćenje prilagođenog TextView u XML rasporedu, navedite pun naziv klase:
<com.vas_paket.CustomTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Zdravo, prilagođeni TextView!" />
Zamenite com.vas_paket putanjom do vašeg paketa.