Dibujar un rectángulo relleno con un borde en android
¿Hay alguna manera en Android para dibujar un rectángulo lleno con decir un borde negro. Mi problema es que canvas.draw () toma un objeto de pintura y, a mi entender, el objeto de pintura no puede tener un color diferente para el relleno y el trazo. ¿Hay alguna forma de evitar esto?
- El relleno se pierde con la etiqueta <merge> con el componente compuesto personalizado
- Android TextView dibujable, cambio de relleno entre dibujable y texto?
- ¿Cambiar el fondo también cambia el relleno de un LinearLayout?
- Android: estira el diseño entre dos LinearLayouts fijos
- Android Studio agrega relleno al icono ic_launcher.png
- De espacio para la marca de verificación de la casilla de verificación en android
- Cómo eliminar el relleno de Android CheckBox
- ¿Cómo agregar un simple encabezado 8dp / pie de página a RecyclerView de Android?
- Pantalla de relleno DialogFragment en el teléfono
- Eliminación del relleno del botón de imagen (Android)
- Dar relleno con setPadding con la unidad dip no unidad px
- Android - Espaciado entre CheckBox y texto
- Barra de aplicación de relleno / espacio entre icono y título (Android 24)
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 de nuevo el rectángulo con el tamaño normal.
Trate de pintar. SetStyle (Paint.Style. FILL ) y pintura. 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 múltiples vistas, también podría usar dos pinturas, una para el trazo y otra para el relleno. De esa manera usted no tiene que seguir reajustá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 }
- ¿Cómo crear aplicaciones Android con acceso root?
- Cómo obtener texto de autocompletar textview android