5

是否可以扩展在 XML 中创建的选择器以供以StateListDrawable编程方式使用?

我发现StateListDrawable有一个inflate方法,但我没有找到使用示例。

最好避免这样做:

StateListDrawable states = new StateListDrawable();
states.addState(new int[] {android.R.attr.state_pressed}, getResources().getDrawable(R.drawable.pressed));
states.addState(new int[] {android.R.attr.state_focused}, getResources().getDrawable(R.drawable.focused));
states.addState(new int[] { }, getResources().getDrawable(R.drawable.normal));
imageView.setImageDrawable(states);

有人知道这是否可能并提供一个例子吗?

提前致谢。

4

1 回答 1

0

这当然是可能的。您将在 State list 的文档中找到有关其他所有可绘制对象的更多信息。我希望这个答案在六年后对任何人都能派上用场。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/pressed"
          android:state_pressed="true" />
    <item android:drawable="@drawable/focused"
          android:state_focused="true" />
    <item android:drawable="@drawable/normal" />
</selector>
于 2019-06-09T22:20:45.913 回答