因此,每次点击按钮时,我都会使用此方法更改按钮中的文本:
final Button button1 = (Button) rootView.findViewById(R.id.inputModeSelector);
button1.setTag(1);
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
final int status =(Integer) v.getTag();
if(status == 1) {
button1.setText("Pic");
v.setTag(0); //pause
} else {
button1.setText("Text");
v.setTag(1); //pause
}
Toast.makeText(getActivity().getBaseContext(), "Changed Input Type", Toast.LENGTH_SHORT).show();
}
});
在按钮的样式中,我有:
android:drawableLeft="@drawable/ic_assignment_white_18dp"
这会放置一个图标来强调文本模式。我的问题是如何将该图标更改为另一个图标以与相机模式一起使用,或者基本上如何设置drawableLeft属性?
答案 0 :(得分:3)
您可以使用drawableLeft
以编程方式设置setCompoundDrawablesWithIntrinsicBounds()
,如下所示
button1.setCompoundDrawablesWithIntrinsicBounds(R.drawable.yourdrawable, 0, 0, 0);
请阅读docs了解详情。
答案 1 :(得分:0)
如果要以编程方式设置drawable,则必须使用
button.setCompoundDrawablesWithIntrinsicBounds(int leftDrawableId, int topDrawableId, int rightDrawableId, int bottomDrawableId);
因此,如果要设置drawable left,只需将drawable的id赋予setCompoundDrawablesWithInstrinsicBounds()的相应参数,并将其余部分保留为null或0。 例如:
button.setCompoundDrawablesWithIntrinsicBounds(R.drawable.textIcon, 0, 0, 0);
同样,如果你想设置正确的drawable必须这样做:
button.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.textIcon, 0);