Middle
Ako by ste rozšírili TextView pomocou určitej metódy?
sobes.tech AI
Odpoveď od AI
Rozšíriť TextView je možné vytvorením vlastnej triedy, ktorá dedí od TextView, a prepísaním potrebných metód, napríklad onDraw() alebo onMeasure(). Napríklad:
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() {
// Dodatočná inicializačná logika, ak je potrebná
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// Pridajte vlastnú logiku kreslenia, napríklad rámček alebo podčiarknutie
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);
// Pridajte vlastnú logiku merania rozmerov
int width = getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec);
int height = getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec);
setMeasuredDimension(width, height);
// Môžete zmeniť namerané rozmery, ak je to potrebné
}
}
V tomto príklade trieda CustomTextView dedí od AppCompatTextView. Metóda onDraw() bola prepísaná, aby pridala červený rám okolo textu, a onMeasure() zostáva nezmenená, ale ukazuje možnosť jej prepísania na prispôsobenie rozmerov.
Na použitie vlastného TextView v XML rozložení, uveďte úplný názov triedy:
<com.vasho_balicek.CustomTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Ahoj, vlastný TextView!" />
Nahraďte com.vasho_balicek cestou k vášmu balíčku.