Pergunta

É possível especificar uma imagem diferente quando o foco do usuário chega ao ImageButton? Eu quero mostrar uma imagem em um LinearLayout e alterar a imagem quando o foco do usuário vem no botão ou quando o usuário pressiona o botão.

Graças.

Foi útil?

Solução

Sim, você pode fazer isso. O que você precisa é um arquivo xml drawable que define um seletor.

<selector xmlns:android...
  <item android:state_enabled="false" android:state_focused="true" android:drawable="..." />
  <item android:state_enabled="true" android:state_focused="false" android:drawable="..." />
</selector>

Em seguida, use o id deste XML drawable ao especificar o ImageButton em sua XML layout.

Outras dicas

A resposta precedente não funcionou para mim. Aqui está o código que eu encontrei em outro lugar:

    <selector xmlns:android="http://schemas.android.com/apk/res/android" >
         <item android:drawable="@drawable/refresh_pushed" android:state_pressed="true" />
         <item android:drawable="@drawable/refresh" />
    </selector>

Você também pode adicionar um estado para objetos foccussed adicionando uma linha e usar:

android: state_focused = "true"

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top