以编程方式更改Button Drawable

时间:2017-03-13 20:15:28

标签: android button drawable

我有一个左侧可绘制的按钮:

<Button
    android:id="@+id/post_feeling_btn"
    android:background="@color/white"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="4dp"
    android:drawableLeft="@drawable/feeling_btn"
    android:gravity="left|center_vertical"
    android:textColor="@color/gray"
    android:text="Sentimento"/>

在我的简历方法中,我以编程方式更改按钮的文本:

Button setFeeling;
FeelingButton selectedFeeling;

@Override
public void onResume() {
    super.onResume();
    selectedFeeling = ((FeedActivity)getActivity()).getSelectedFeeling();
    if(selectedFeeling != null){
        setFeeling.setText(selectedFeeling.getFeeling());
    }
}

有没有办法改变我的drawable left并使用我在selectedFeeling对象中的图像以相同的方法设置图像?我正在寻找类似的东西:

setFeeling.setDrawable();

2 个答案:

答案 0 :(得分:9)

尝试这样的事情:for drawableLeft

int imgResource = R.drawable.your_drawable;
setFeeling.setCompoundDrawablesWithIntrinsicBounds(imgResource, 0, 0, 0);
setFeeling.setCompoundDrawablePadding(8);     //for padding

感谢此处的Answer

答案 1 :(得分:1)

你快到了:setBackgroundResource

setFeeling.setBackgroundResource(R.drawable.appIcon);