Pergunta

Estou criando uma visão de imagem dinamicamente.

ImageView btnSend = new ImageView (this);

Preciso colocar um layout que contenha os estados das imagens, este é o XML:

<? xml version = "1.0" encoding = "utf-8"?>
<selector
      xmlns: android = "http://schemas.android.com/apk/res/android">
      <item
           android: state_focused = "true"
           android: state_pressed = "false"
           android: drawable = "@ drawable/button_state3" />
      <item
           android: state_focused = "true"
           android: state_pressed = "true"
           android: drawable = "@ drawable/button_state2" />
      <item
           android: state_focused = "false"
           android: state_pressed = "true"
           android: drawable = "@ drawable/button_state2" />
      <item
           android: drawable = "@ drawable/button_state1" />
</ selector>

Eu testei com a propriedade SontackgroundResource, mas não funciona.

Como faço para atribuir este layout ao ImageView?

Desde já, obrigado.

Foi útil?

Solução

O que você criou neste XML (btw remove os espaços depois de @) é um Statelistdrawable Não é um layout como você mencionou. Consequentemente, use ImageView.setImageResource (R.Drawable.MyDrawable) Para defini -lo.

Outras dicas

Este é o código que funciona ...

ImageView btnEliminar = new ImageView (this);

StateListDrawable drawable = new StateListDrawable();

Drawable normal = getResources().getDrawable(R.drawable.image_normal);
Drawable selected = getResources().getDrawable(R.drawable.image_selected);
Drawable pressed = getResources().getDrawable(R.drawable.image_pressed);

drawable.addState(new int[] { android.R.attr.state_pressed}, pressed);
drawable.addState(new int[] { android.R.attr.state_focused}, selected);
drawable.addState(new int[] { android.R.attr.state_enabled}, normal);

btnEliminar.setImageDrawable(drawable);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top