Necesito crear una forma de Android para que solo la parte inferior tenga un trazo (una línea discontinua). Cuando intento lo siguiente, el trazo biseca la forma por el centro. ¿Alguien sabe cómo hacerlo bien? el trazo debe ser la línea inferior / borde. Estoy usando la forma como fondo de un TextView. Por favor, no importa por qué lo necesito.
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle" >
<solid android:color="#1bd4f6" />
</shape>
</item>
<item>
<shape android:shape="line" >
<padding android:bottom="1dp" />
<stroke
android:dashGap="10px"
android:dashWidth="10px"
android:width="1dp"
android:color="#ababb2" />
</shape>
</item>
</layer-list>
android
android-drawable
android-styles
layer-list
Cote Mounyo
fuente
fuente
Respuestas:
Es una especie de truco, pero creo que probablemente sea la mejor manera de hacerlo. La línea discontinua siempre estará en la parte inferior, independientemente de la altura.
Explicación:
La segunda forma es un rectángulo transparente con un contorno punteado. La clave para hacer que el borde solo aparezca en la parte inferior radica en los márgenes negativos establecidos en los otros lados. Estos márgenes negativos "empujan" la línea punteada fuera del área dibujada en esos lados, dejando solo la línea a lo largo de la parte inferior. Un efecto secundario potencial (que no he probado) es que, para las vistas que se dibujan fuera de sus propios límites, los bordes del margen negativo pueden volverse visibles.
fuente
Esto hace el truco ...
fuente
fuente
Esta respuesta es para aquellos buscadores de Google que desean mostrar un borde inferior punteado
EditText
como aquí.Crea
dotted.xml
unadrawable
carpeta interior y pégalasLuego, simplemente establezca el
android:background
atributodotted.xml
que acabamos de crear. Tu seEditText
ve así.fuente
Siento que es sencillo, sin todos estos acolchados negativos o cigüeñas.
fuente
<item android:drawable="@color/main_bg_color"/>
Pruebe el siguiente código dibujable xml:
fuente
Creo que no necesitas usar la forma si te entendí.
Si está mirando como se muestra en la siguiente imagen, utilice el siguiente diseño.
EDITAR
juega con estas propiedades obtendrás resultado
prueba así
fuente
Una solución simple:
Cree un archivo dibujable como edittext_stroke.xml en la carpeta dibujable . Agrega el siguiente código:
En el archivo de diseño, agregue el elemento de diseño para editar el texto como
fuente
Por lo general, para tareas similares, creé una lista de capas que se puede dibujar como esta:
La idea es que primero dibujes el rectángulo con underlineColor y luego, encima de este, dibujes otro rectángulo con el buttonColor real pero aplicando bottomPadding. Siempre funciona.
Pero cuando necesitaba que buttonColor fuera transparente, no podía usar el elemento de dibujo anterior. Encontré una solución más
(como puede ver aquí, mainButtonColor es transparente y white_box es solo un simple rectángulo que se puede dibujar con sólido blanco)
fuente
use este xml cambie el color con su elección.
En caso de que desee programáticamente
llamar a este método como
fuente
Esto funcionó mejor para mí:
Muestra la línea solo en la parte inferior. Puede cambiar fácilmente con el ancho del trazo al tamaño que desee y también actualizar la parte superior, izquierda, derecha en consecuencia.
fuente
La forma más fácil de hacer esto es poner después de esa vista donde desea el borde inferior
fuente
es Edittext completamente transparente con fondo transparente.
fuente
Una solución simple :
Y finalmente tenemos algo así :)
fuente