按下时更改按钮复合绘图

时间:2013-11-17 15:52:44

标签: java android

我想知道是否可以在按下时更改按钮的复合drawable(从其TextView继承)。我有一个样式文件,我在其中定义默认,按下和禁用状态的按钮样式,但我在该按钮中有复合drawable,我不知道如何根据按钮状态更改它们。有没有办法实现这个目标?

非常感谢你,

2 个答案:

答案 0 :(得分:1)

您无法在xml中执行此操作。但是,您可以通过编程方式执行它们。您只需将此代码放在单击侦听器或其他内容中,并在条件(例如按下或单击按钮)时应用。有预先定义的布尔方法。
以下是更改compund drawable的代码: -

您可以使用setCompoundDrawable方法执行此操作。我在没有使用setBounds的情况下使用了它,并且它可以工作。

Drawable image = getContext().getResources().getDrawable( R.drawable.ic_launcher );
img.setBounds( 0, 0, 60, 60 );
txtVw.setCompoundDrawables( img, null, null, null );

或者,您可以使用: -

Drawable image = getContext().getResources().getDrawable( R.drawable.ic_launcher );
image.setBounds( 0, 20, 50, 50 );

txtview1.setCompoundDrawables( imageg, null, null, null );

答案 1 :(得分:1)

您可以使用StateListDrawable来创建它,以便您的不同复合drawable与压缩和正常状态相关联。 The docs for them are here.