Eu gostaria de tornar a CheckBox um pouco menor / maior, como posso fazer isso?
92
Você só precisa definir os drawables relacionados e defini-los na caixa de seleção:
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="new checkbox"
android:background="@drawable/my_checkbox_background"
android:button="@drawable/my_checkbox" />
O truque está em como definir os drawables. Aqui está um bom tutorial sobre isso .
A partir da API de nível 11, existe outra abordagem:
fonte
Aqui está uma solução melhor que não corta e / ou desfoca o drawable, mas só funciona se a caixa de seleção não tiver texto em si (mas você ainda pode ter texto, é apenas mais complicado, veja no final).
O resultado:
Qual a aparência
scaleX
e ascaleY
aparência da solução anterior :Você pode ter uma caixa de seleção de texto adicionando um
TextView
ao lado dela e adicionando um ouvinte de clique no layout pai e, em seguida, acionando a caixa de seleção programaticamente.fonte
Bem, eu encontrei muitas respostas, mas elas funcionam bem sem texto quando exigimos texto também com caixa de seleção como na minha IU
Aqui, de acordo com meus requisitos de IU, não posso deixar de aumentar TextSize, então outra opção que tentei foi scaleX e scaleY (selecione a caixa de seleção) e o seletor xml personalizado com imagens .png (também está criando problemas com tamanhos de tela diferentes)
Faça isso em 3 etapas.
Etapa 1: copie esses três Drawable de vetor para sua pasta de drawable
verificado.xml
un_checked.xml
( Observe que se você estiver trabalhando com o Android Studio, você também pode adicionar esses Drawable de vetor a partir daí, clique com o botão direito na pasta de drawable, em Novo / Ativo de vetor e selecione esses drawable a partir daí )
Etapa 2: Criar seletor XML para check_box
check_box_selector.xml
Etapa 3: defina esse drawable na caixa de seleção
Agora é como:
Espero que ajude!
fonte
android:button="@null"
eandroid:background="@drawable/check_box_selector"
fazer ajustar o tamanho da caixa de seleção.eu uso
android:scaleX="0.70" android:scaleY="0.70"
para ajustar o tamanho da caixa de seleção
então eu defino margens assim
para ajustar a localização da caixa de seleção.
fonte
Aqui foi o que eu fiz, primeiro set:
android:button="@null"
e também definir
em seguida, em seu código Java:
Funciona para mim e espero que funcione para você!
fonte
ATUALIZAÇÃO : funciona apenas a partir da API 17 ...
Para adicionar outras respostas brilhantes já fornecidas, você só pode deixar a caixa de seleção tão pequena quanto o tamanho do texto permitir.
De acordo com minha resposta a esta pergunta: - como podemos reduzir o tamanho da caixa de seleção, dê-me uma ideia
CheckBox
deriva sua altura do TEXTO, bem como da imagem.Defina essas propriedades em seu XML:
Claro que isso só funciona se você não quiser nenhum texto (funcionou para mim).
Sem essas mudanças, o
CheckBox
estava me dando uma grande margem em torno da minha imagem, conforme mencionado por Joefonte
Você pode tentar a seguinte solução para alterar o tamanho
custom checkbox
, definindo as seguintes propriedadesCheckbox
em seu arquivo de layout. Funcionou para mimadicione as seguintes linhas ao arquivo drawable
fonte
Eu encontrei uma maneira de fazer isso sem criar suas próprias imagens. Em outras palavras, a imagem do sistema está sendo dimensionada. Não finjo que a solução seja perfeita; se alguém souber como encurtar algumas das etapas, ficarei feliz em descobrir como.
Primeiro, coloquei o seguinte na classe de atividade principal do projeto (WonActivity). Isso foi retirado diretamente do Stack Overflow - obrigado, pessoal !
Em segundo lugar, criei uma classe para "dimensionar um drawable". Observe que é completamente diferente do ScaleDrawable padrão.
Por fim, defini uma classe de caixa de seleção.
É isso aí. Se você colocar um WonCheckBox em sua visualização e aplicar setHeight (), a imagem da caixa de seleção terá o tamanho correto.
fonte
use este código.
no layout:
adicione um novo drawable: my_checkbox.xml
e criar 2 drawable:
checkbox_off_background.xml
e também, checkbox_on_background.xml
fonte
Suponha que seu xml original seja:
em seguida, simplesmente remova
android:button="@drawable/xml_above"
em sua caixa de seleção xml e faça o dimensionamento do drawable programaticamente em java (diminua o150
tamanho grande para o dp desejado):o
convertDpToPixel
método:fonte
Não consegui encontrar a resposta relevante para o meu requisito, mas descobri. Portanto, esta resposta é para a caixa de seleção com texto como abaixo, onde você deseja redimensionar o drawable da caixa de seleção e o texto separadamente.
Você precisa de dois PNGs cb_checked.png e cb_unchechecked.png para adicioná-los à pasta drawable
Agora crie cb_bg_checked.xml
E, cb_bg_unchecked.xml
Em seguida, crie um seletor XML checkbox.xml
Agora defina seu layout.xml assim
fonte
Se você deseja adicionar uma imagem personalizada à caixa de seleção, defina o botão como nulo e apenas adicione o fundo à caixa de seleção que resolve
fonte