Sobes.tech
Middle

Kā jūs paplašinātu TextView, izmantojot noteiktu metodi?

sobes.tech AI

Atbilde no AI

TextView paplašināšanu var veikt, izveidojot savu klasi, kas manto TextView un pārraksta nepieciešamās metodes, piemēram, onDraw() vai onMeasure(). Piemērs:

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() {
        // Papildu inicializācija, ja nepieciešama
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        // Pievienojam savu zīmēšanas loģiku, piemēram, rāmi vai apakšsvītru
        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);
        // Pievienojam savu mērogošanas loģiku
        int width = getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec);
        int height = getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec);
        setMeasuredDimension(width, height);
        // Ja nepieciešams, var mainīt izmērus
    }
}

Šajā piemērā CustomTextView klase manto AppCompatTextView. onDraw() metode ir pārrakstīta, lai pievienotu sarkanu rāmi ap tekstu, un onMeasure() paliek nemainīta, bet rāda, ka izmēru pielāgošana ir iespējama.

Lai izmantotu pielāgotu TextView XML izkārtojumā, norādiet pilnu klases ceļu:

<com.your_package_name.CustomTextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello, Custom TextView!" />

Aizvietojiet com.your_package_name ar savu pakotnes ceļu.