He visto esto subject acerca de poner un borde alrededor de una vista de texto de Android, y lo he usado. Pero ahora, me gustaría poner un borde alrededor de los widgets que están situados en un diseño relativo. ¿Cómo puedo hacerlo?cómo poner un borde alrededor de una versión relativa de Android?
Respuesta
Cree un FrameLayout que obtenga el color de fondo de su borde, y un margen o relleno del ancho de su borde, y coloque ese FrameLayout en su RelativeLayout. Coloque el TextView en su FrameLayout en lugar de directamente en RelativeLayout. poof borde inmediato.
No entendí, ¿podrías darme un ejemplo? – AyaAndro
RelativeLayout layout = (RelativeLayout) view.findViewById(R.id.borderEffect); // id fetch from xml
ShapeDrawable rectShapeDrawable = new ShapeDrawable(); // pre defined class
// get paint
Paint paint = rectShapeDrawable.getPaint();
// set border color, stroke and stroke width
paint.setColor(Color.GRAY);
paint.setStyle(Style.STROKE);
paint.setStrokeWidth(5); // you can change the value of 5
layout.setBackgroundDrawable(rectShapeDrawable);
- en su carpeta
res/drawable
, crear un nuevo archivobackground_border.xml
En este archivo, definirá el fondo de widget de la siguiente manera:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<!-- This is the stroke you want to define -->
<stroke android:width="1dp"
android:color="@color/color_stroke"/>
<!-- Optional, round your corners -->
<corners android:bottomLeftRadius="0dp"
android:topLeftRadius="5dp"
android:bottomRightRadius="5dp"
android:topRightRadius="0dp" />
<!-- Optional, fill the rest of your background with a color or gradient, use transparent if you only want the border to be displayed-->
<gradient android:startColor="@android:color/transparent"
android:endColor="@android:color/transparent"
android:angle="90"/>
</shape>
- establece el fondo de tu widget a la configuración dibujable que acabas de crear
por ejemplo. si usted quiere poner su frontera en un RelativeLayout:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/background_border"
android:padding="15dp">
...
</RelativeLayout>
Aunque todas las respuestas proporcionadas funcionan, son muy rigid.what si desea personalizar el color del borde, BorderThickness para diferentes pantallas. para eso debes probar mi solución. Vamos a seguir tres pasos para crear un RelativeLayout personalizado que te permita proporcionar borderColor y Thickness para el borde inferior.
1) Crear una clase que se extiende RelativeLayout y anular en el método Draw
public class BorderRelativeLayout extends RelativeLayout {
private float borderThickness;
private int borderColor;
public BorderRelativeLayout(Context context) {
this(context, null, 0);
}
public BorderRelativeLayout(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public BorderRelativeLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Rect rect = new Rect();
Paint paint = new Paint();
paint.setColor(borderColor);
paint.setStrokeWidth(borderThickness);
getLocalVisibleRect(rect);
canvas.drawLine(rect.left, rect.bottom, rect.right, rect.bottom, paint);
}
private void init(Context context, AttributeSet attrs) {
setWillNotDraw(false);
TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.BorderRelativeLayout);
borderThickness = array.getDimension(R.styleable.BorderRelativeLayout_borderThickness, 0.5f);
borderColor = array.getColor(R.styleable.BorderRelativeLayout_borderColor,
ContextCompat.getColor(context, R.color.colorPrimary));
}
}
2) Definición de las propiedades con estilos en attrs.xml
<declare-styleable name="BorderRelativeLayout">
<attr name="borderThickness" format="dimension"/>
<attr name="borderColor" format="color"/>
</declare-styleable>
3) haya terminado y se puede utilizar como
<com.spacewek.spacewek.controls.BorderRelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/headLayout"
app:borderThickness="2dp"
app:borderColor="@color/divider_new_color">
</com.spacewek.spacewek.controls.BorderRelativeLayout>
Esto es exagerado –
- 1. ¿Cómo coloco un borde alrededor de una imagen en WPF?
- 2. ¿Cómo coloco un borde alrededor de una etiqueta tr?
- 3. ¿Existe alguna manera más simple/mejor de poner un borde/contorno alrededor de mi TextView?
- 4. Ventana emergente de WPF: ¿Cómo poner un borde alrededor de la ventana emergente?
- 5. ¿Cómo elimino el borde alrededor de una precontenida enfocada?
- 6. Establezca un borde alrededor de un StackPanel.
- 7. ¿Cómo dibuja Qt un borde alrededor de un rectángulo?
- 8. ¿Cómo crear un borde en un borde de una vista?
- 9. ¿Cómo crear un borde blanco alrededor de mapa de bits?
- 10. ¿Cómo poner borde en el área?
- 11. poner una etiqueta img dentro de una etiqueta a href provoca un borde alrededor de la imagen en IE
- 12. ¿Cómo dibujar el borde alrededor de una palabra en RichTextBox?
- 13. Borde alrededor imagen en C#
- 14. Dibujar borde alrededor de un Control en Button_Click
- 15. Borde alrededor de la etiqueta li
- 16. dibujar un borde alrededor de las subtramas en matplotlib
- 17. WPF - Borde alrededor de un control de elementos
- 18. Qt QTableWidget borde gris punteado alrededor de una celda seleccionada
- 19. Extracción del borde negro alrededor de una imagen
- 20. cotizaciones poner alrededor de una cadena variable en JavaScript
- 21. Sombra o borde alrededor de un scrollview iphone
- 22. Qt QTableView dibuja un borde alrededor de las celdas activas
- 23. Poner bordes CSS alrededor de los botones de radio
- 24. cómo quitar el borde negro alrededor de la imagen hipervinculada?
- 25. ¿Por qué poner `alrededor de las columnas?
- 26. ZXing Barcode Reader: ¿Cómo hacer un borde personalizado alrededor de la pantalla de captura?
- 27. ¿Cómo eliminar el borde alrededor de los botones?
- 28. cómo poner texto en el borde
- 29. ¿Cómo hacer una "línea" de SVG con un borde a su alrededor?
- 30. cómo agregar borde a un texto en textview android
Como no has aceptado ninguna respuesta, has visitado este enlace http://stackoverflow.com/questions/832359 9/how-to-add-bottom-border-in-relativelayout – surhidamatya
Su pregunta está duplicada para la respuesta revise este enlace. http://stackoverflow.com/a/17980889/801369 – dhuma1981