Preciso criar uma forma android para que apenas a parte inferior tenha traçado (uma linha tracejada). Quando tento o seguinte, o traçado corta a forma através do centro. Alguém sabe como fazer isso certo? o traçado precisa ser a linha inferior / borda. Estou usando a forma como plano de fundo para um TextView. Por favor, não importa por que eu preciso.
<?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
fonte
fonte
Respostas:
É meio que um hack, mas acho que essa é provavelmente a melhor maneira de fazer isso. A linha tracejada estará sempre na parte inferior, independentemente da altura.
Explicação:
A segunda forma é um retângulo transparente com um contorno tracejado. A chave para fazer a borda aparecer apenas na parte inferior está nas margens negativas definidas nos outros lados. Essas margens negativas "empurram" a linha tracejada para fora da área desenhada nesses lados, deixando apenas a linha na parte inferior. Um efeito colateral potencial (que eu não tentei) é que, para visualizações desenhadas fora de seus próprios limites, as bordas da margem negativa podem se tornar visíveis.
fonte
Isso faz o truque ...
fonte
fonte
Esta resposta é para os pesquisadores do Google que desejam mostrar a borda inferior pontilhada de
EditText
como aquiCrie uma pasta
dotted.xml
internadrawable
e cole estesEm seguida, basta definir o
android:background
atributodotted.xml
que acabamos de criar. Você seEditText
parece com isso.fonte
Eu sinto que é direto, sem todo esse preenchimento negativo ou cegonha.
fonte
<item android:drawable="@color/main_bg_color"/>
Experimente o próximo código extraível xml:
fonte
Eu acho que você não precisa usar a forma se eu entendi você.
Se você estiver olhando como mostrado na imagem a seguir, use o seguinte layout.
EDITAR
brincar com essas propriedades, você obterá resultado
tente assim
fonte
Uma solução simples:
Crie um arquivo desenhável como edittext_stroke.xml na pasta desenhável. Adicione o código abaixo:
No arquivo de layout, adicione o drawable ao edittext como
fonte
Geralmente para tarefas semelhantes - criei drawable de lista de camadas como este:
A idéia é que primeiro você desenhe o retângulo com underlineColor e, em seguida, desenhe outro retângulo com o buttonColor real, mas aplicando bottomPadding. Isso sempre funciona.
Mas quando eu precisava do buttonColor para ser transparente, não podia usar o drawable acima. Eu encontrei mais uma solução
(como você pode ver aqui, o mainButtonColor é transparente e white_box é apenas um retângulo simples que pode ser desenhado com um sólido branco)
fonte
use este xml altere a cor com sua escolha.
Caso você queira programaticamente
chame esse método como
fonte
Isso funcionou melhor para mim:
Mostra a linha apenas na parte inferior. Você pode alterar facilmente a largura do traçado para o tamanho desejado e também atualizar a parte superior, esquerda e direita conforme necessário.
fonte
A maneira mais fácil de fazer isso é colocar depois dessa visualização onde você deseja a borda inferior
fonte
é completamente transparente Edittext com fundo transparente.
fonte
Uma solução simples :
E, finalmente, temos algo parecido :)
fonte