【问题标题】:Change Button Drawable Programmatically [duplicate]以编程方式更改按钮可绘制[重复]
【发布时间】:2017-03-13 20:15:27
【问题描述】:

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

<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"/>

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

Button setFeeling;
FeelingButton selectedFeeling;

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

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

setFeeling.setDrawable();

【问题讨论】:

    标签: android button drawable


    【解决方案1】:

    试试这样的:drawableLeft

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

    感谢Answer这里也。

    【讨论】:

    • 成功了,但是图片太大了。有没有办法设置高度和宽度?
    • @rob 据我所知,您无法设置可绘制左侧的大小,请尝试减小图像的大小。
    【解决方案2】:

    你快到了:setBackgroundResource

    setFeeling.setBackgroundResource(R.drawable.appIcon);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-07
      • 1970-01-01
      • 1970-01-01
      • 2017-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多