studio - poner borde a un textview android
Dibujando un rectángulo relleno con un borde en Android (3)
Dibuja un rectángulo con el color del borde y el tamaño del rectángulo más el borde, cambia el color de la pintura y dibuja nuevamente el rectángulo con el tamaño normal.
¿Hay alguna forma en Android de dibujar un rectángulo relleno con, por ejemplo, un borde negro? Mi problema es que canvas.draw () toma un objeto de pintura, y que yo sepa, el objeto de pintura no puede tener un color diferente para el relleno y el trazo. ¿Hay alguna forma de evitar esto?
Intenta pintar setStyle (Paint.Style. FILL ) y pinta. setStyle (Paint.Style. STROKE).
Paint paint = new Paint();
Rect r = new Rect(10, 10, 200, 100);
@Override
public void onDraw(Canvas canvas) {
// fill
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.MAGENTA);
canvas.drawRect(r, paint);
// border
paint.setStyle(Paint.Style.STROKE);
paint.setColor(Color.BLACK);
canvas.drawRect(r, paint);
}
Si está dibujando varias vistas, también puede usar dos pinturas, una para el trazo y otra para el relleno. De esa forma no tienes que seguir reiniciándolos.
Paint fillPaint = new Paint();
Paint strokePaint = new Paint();
RectF r = new RectF(30, 30, 1000, 500);
void initPaints() {
// fill
fillPaint.setStyle(Paint.Style.FILL);
fillPaint.setColor(Color.YELLOW);
// stroke
strokePaint.setStyle(Paint.Style.STROKE);
strokePaint.setColor(Color.BLACK);
strokePaint.setStrokeWidth(10);
}
@Override
protected void onDraw(Canvas canvas) {
// First rectangle
canvas.drawRect(r, fillPaint); // fill
canvas.drawRect(r, strokePaint); // stroke
canvas.translate(0, 600);
// Second rectangle
int cornerRadius = 50;
canvas.drawRoundRect(r, cornerRadius, cornerRadius, fillPaint); // fill
canvas.drawRoundRect(r, cornerRadius, cornerRadius, strokePaint); // stroke
}