Como o Cephus mencionado android:drawablePadding
, forçará o preenchimento apenas entre o texto e o drawable se o botão for pequeno o suficiente.
Ao colocar botões maiores, você pode usar android:drawablePadding
em conjunto com android:paddingLeft
e android:paddingRight
forçar o texto e o desenho para dentro em direção ao centro do botão. Ajustando o preenchimento esquerdo e direito separadamente, você pode fazer ajustes muito detalhados no layout.
Aqui está um botão de exemplo que usa preenchimento para aproximar o texto e o ícone do que eles seriam por padrão:
<Button android:text="@string/button_label"
android:id="@+id/buttonId"
android:layout_width="160dip"
android:layout_height="60dip"
android:layout_gravity="center"
android:textSize="13dip"
android:drawableLeft="@drawable/button_icon"
android:drawablePadding="2dip"
android:paddingLeft="30dip"
android:paddingRight="26dip"
android:singleLine="true"
android:gravity="center" />
passwordToggleDrawable
aumenta o espaço esquerdo do preenchimento, pois não pode ser direcionado apenas para o drawable esquerdo.O TextView possui uma propriedade android: drawablePadding , que deve fazer o truque:
fonte
android:drawablePadding
só criará um espaço de preenchimento entre o texto e o drawable se o botão for pequeno o suficiente para pressionar os 2 juntos. Se o botão for maior que a largura combinada (para drawableLeft / drawableRight) ou a altura (para drawableTop / drawableBottom), o drawablePadding não fará nada.Também estou lutando com isso agora. Meus botões são bem amplos, e o ícone está pendurado na borda esquerda do botão e o texto está centralizado no meio. Minha única maneira de contornar isso por enquanto foi assar em uma margem no drawable adicionando pixels em branco à borda esquerda da tela com o photoshop. Não é o ideal e também não é realmente recomendado. Mas essa é a minha solução para o problema, por enquanto, antes da reconstrução do TextView / Button.
fonte
Sim. use drawablePadding da seguinte maneira,
fonte
Crie seus recursos desenhados.xml
fonte
android:drawablePadding
é a maneira mais fácil de dar preenchimento ao ícone desenhável, mas Você não pode fornecer um preenchimento específico de um lado comopaddingRight
oupaddingLeft
do ícone desenhável. E se você aplicarpaddingLeft
ou,paddingRight
emEdittext
seguida, ele colocará o preenchimento como um todo,Edittext
juntamente com o ícone de desenho.fonte
defina uma forma para o seu edittext e dê um preenchimento Por exemplo
O preenchimento definido nesta forma ajudará a dar preenchimento à esquerda de desenho ou à direita ---------------------- Aplique essa forma no EditView
usar essa forma definida como plano de fundo dará ao EditText algum estilo e margem para drawableLeft.
fonte
android: drawablePadding é a maneira mais fácil de fornecer preenchimento ao ícone do drawable, mas você não pode fornecer um preenchimento de um lado específico, como paddingRight ou paddingLeft do ícone do drawable. E se você aplicar paddingLeft ou paddingRight ao Edittext, ele colocará o padding em todo o Text Edit junto com o ícone de desenho.
fonte
note: layout_width precisa ser wrap_content e use paddingLeft paddingRight drawablePadding para controlar o espaço. Se você especificar o valor layout_width is will tiver espaço entre o ícone e o texto, acho que, uma vez que o layout_width especifique o valor, o preenchimento será medido.
fonte
Vou jogar minha resposta no ringue também. Se você quiser fazer isso programaticamente, faça o seguinte.
Isso adicionará o preenchimento ao final do drawable, onde end significará esquerda / direita, dependendo do telefone estar em LTR ou RTL.
fonte
Em vez de
Button
usarLinearLayout
comImageView
eTextView
dentro. Em itens filhos, comoImageView
eTextView
usoandroid:duplicateParentState="true"
.fonte
Você deve considerar o uso de lista de camadas
Crie um arquivo drawable como este, denomine ic_calendar.xml
Em arquivo de layout,
fonte
Você pode usar um preenchimento para o botão e jogar com drawablePadding
você pode usar um preenchimento específico depende de onde colocar seu drawable, com android: paddingLeft = "10dp" ou android: paddingBottom = "10dp" ou android: paddingRight = "10dp" ou android: paddingTop = "10dp"
fonte
Você pode usar
android:drawableLeft="@drawable/your_icon"
para definir o drawable a ser mostrado no lado esquerdo. Para definir um preenchimento para o drawable, useandroid:paddingLeft
ouandroid:paddingRight
para definir o preenchimento esquerdo / direito, respectivamente.fonte
Se o tamanho do recurso extraível for fixo, você poderá fazer o seguinte:
A chave aqui é que:
Ou seja, o tamanho do recurso extraível mais paddingRight é o paddingLeft.
Você pode ver o resultado neste exemplo
fonte
fonte
basta refazer de:
para
fonte
Tenta usar preenchimento negativo
Gostar:
fonte