Middle
Πώς θα επεκτείνατε το TextView χρησιμοποιώντας μια συγκεκριμένη μέθοδο;
sobes.tech AI
Απάντηση από AI
Μπορείτε να επεκτείνετε το TextView δημιουργώντας μια δική σας κλάση που κληρονομεί από το TextView και υπερκαλύπτοντας τις απαραίτητες μεθόδους, π.χ., onDraw() ή onMeasure(). Για παράδειγμα:
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() {
// Πρόσθετη λογική αρχικοποίησης, αν χρειάζεται
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// Προσθέστε τη δική σας λογική σχεδίασης, π.χ., πλαίσιο ή υπογράμμιση
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);
// Προσθέστε τη δική σας λογική μέτρησης διαστάσεων
int width = getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec);
int height = getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec);
setMeasuredDimension(width, height);
// Μπορείτε να αλλάξετε τις μετρημένες διαστάσεις αν χρειάζεται
}
}
Σε αυτό το παράδειγμα, η κλάση CustomTextView κληρονομεί από το AppCompatTextView. Η μέθοδος onDraw() έχει υπερκαλυφθεί για να προσθέσει ένα κόκκινο πλαίσιο γύρω από το κείμενο, και το onMeasure() παραμένει αμετάβλητο, αλλά δείχνει τη δυνατότητα υπερκαλύψεώς του για προσαρμογή των διαστάσεων.
Για να χρησιμοποιήσετε μια προσαρμοσμένη TextView στο XML layout, δηλώστε το πλήρες όνομα της κλάσης:
<com.toypoihkeio.CustomTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Γειά σου, Προσαρμοσμένο TextView!" />
Αντικαταστήστε το com.toypoihkeio με το μονοπάτι του πακέτου σας.