带有StateListDrawable的ImageView无法正常工作

时间:2012-10-14 18:09:25

标签: android imageview statelistdrawable

这看起来很简单,但它不起作用。 ImageView应该在选中时更改位图,而是始终显示未选中的图像:

public void addImage()
{
  ImageView imageView = new ImageView(context);
  m_draw = new StateListDrawable();

  m_draw.addState(android.util.StateSet.WILD_CARD, m_bitmapUnchecked);
  m_draw.addState(new int[] { android.R.attr.state_checked }, m_bitmapChecked);

  imageView.setImageDrawable(m_draw);

  this.addView(imageView);
}

public void onClick(View v)
{
  m_draw.setState(new int[] { android.R.attr.state_checked });
}

1 个答案:

答案 0 :(得分:3)

第一个匹配状态是将要设置的状态。你应该把WILD_CARD作为最后一个状态。