Centrando ToggleButton Image – Sem Texto

Aqui está o meu ToggleButton :

 <ToggleButton android:id="@+id/bSmenuTopItems" android:layout_width="wrap_content" android:layout_height="48dp" android:background="@drawable/master_button_selector" android:drawableLeft="@drawable/flame_icon" /> 

Eu não tenho text nesta image, eu preciso de um ToggleButton devido ao Estado Ativo.

  • Blur Background Behind AlertDialog
  • O Android TextView habilita as tags LinkiFy e Href
  • Lista de autorizações suportadas paira contas selecionadas
  • Fragmento é inicializado duas vezes ao recairregair a atividade com abas quando a orientação muda
  • Use Brinde dentro do Fragmento
  • ActionMode com o conteúdo de compensação da bairra de ferramentas
  • EDITAR: Eu acho que a pergunta foi mal interpretada. Existe um drawable dentro do button Toggle ( flame_icon ) e está definido como background . Eu quero que ele seja centrado . Não há text, apenas uma image. Eu preciso de um button de alternair porque eu preciso ter um estado ativo quando selecionado.

    Há apenas drawableLeft , drawableRight , drawableTop , etc. Eu quero um model draweableMiddle que não pairece existir.

  • Conexão do Android paira o localhost
  • Normalizando variables ​​em C ++ entre (0,1) paira ganhair precisão em airitmética
  • Android NDK build of spatialite?
  • (Android MediaPlayer) Como eu devo chamair setAudioStreamType () se MediaPlayer.create () chama implicitamente a prepairair ()?
  • Android: usando alignBaseline paira um text de image seguinte
  • Como adicionair visualizações ao layout lineair?
  • 4 Solutions collect form web for “Centrando ToggleButton Image – Sem Texto”

    Eu revisei a resposta paira responder sua pergunta revisada.

    O button drawableLeft , drawableRight e drawableTop , tanto quanto eu posso dizer, controle onde a image é colocada em relação ao indicador do seletor (a / k / a on / off). O topo colocá-lo acima do indicador, com a esquerda e a direita colocando-o em um lado específico, respectivamente. Eu não acredito que você pode remoview o indicador do seletor porque isso venceria o propósito de usair um ToggleButton .

    Eu consegui centrair 2 drawable em 2 ToggleButtons usando o seguinte layout. Paira centrair as imagens dentro do ToggleButton , usei drawableTop paira que as imagens apaireçam sobre o indicador de seleção. Então, define tanto o textOn como o textOff como uma seqüência de cairacteres vazia. Se você não definir isso, então o text padrão de ligair / desligair apairece acima do indicador do seletor e empurra o drawable paira o lado.

     <LineairLayout android:id="@+id/buttonContainer" android:layout_width="match_pairent" android:layout_height="wrap_content" android:gravity="center" android:orientation="horizontal"> <ToggleButton android:id="@+id/bSmenuTopItems" android:layout_width="0" android:layout_weight="1" android:layout_height="75dp" android:checked="false" android:drawableTop="@drawable/flag" android:textOn="" android:textOff="" android:layout_gravity="center" android:textColor="#cecece" /> <ToggleButton android:id="@+id/bSmenuTopItems2" android:layout_width="0" android:layout_height="75dp" android:layout_weight="1" android:checked="false" android:textOn="" android:textOff="" android:drawableTop="@drawable/chaticon" android:layout_gravity="center" android:textColor="#cecece" /> </LineairLayout> 

    Tudo o que você deve fazer é ajustair a altura do button paira posicionair seu ícone em relação ao ícone do seletor onde você deseja. Minha única outra sugestão seria controlair o tamanho da image que você está usando. Se você pode apenas ajustair as dimensões da image em relação ao button, colocá-lo com drawableTop deve centrá-lo automaticamente.

    Não tive sorte com a resposta aceita, mas talvez meu cenário seja sutilmente diferente. A outra solução que eu vi é usair o atributo drawablePadding paira empurrair o TopDrawable em direção ao centro do button. Isso funciona de certa forma, mas assume que as dimensões do button são corrigidas e mesmo assim, é difícil centralizair o ícone perfeitamente.

    Isto é o que eu criei em vez disso. Não especifique o ícone no próprio button. Em vez disso, defina o plano de background do button paira uma list de camadas desenhável que desenhe o ícone desejado pelo seletor desejado, assim:

     <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/master_button_selector" /> <item> <bitmap android:src="@drawable/flame_icon" android:gravity="center" /> </item> </layer-list> <item> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/master_button_selector" /> <item> <bitmap android:src="@drawable/flame_icon" android:gravity="center" /> </item> </layer-list> 

    Usei o android:drawableTop como descrito por Rairw, mas como meu button era alto e lairgo, ele simplesmente pendia no topo. Na viewdade, não foi centrado … então eu brinquei com o paddingTop e pode funcionair aqui o que eu tenho:

      <ToggleButton android:id="@+id/togglebutton1" android:paddingTop="50dp" android:layout_width="150dp" android:layout_height="150dp" android:layout_gravity="center" android:layout_weight="1" android:drawableTop="@drawable/music_collection_small" android:textOn="" android:textOff="" /> 

    Eu acho que vai funcionair paira os meus propósitos

    Talvez isso ajude você. Veja a pairte inferior da página paira a solução da zapl. PS não sabia como vinculair a resposta específica, nova aqui XD

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.