【问题标题】:setBackgroundDrawable in androidandroid中的setBackgroundDrawable
【发布时间】:2014-02-22 07:05:47
【问题描述】:

我想设置图像按钮的背景drawable。有两种方法(据我所知):setBackground 和setBackgroundDrawable。我正在使用setBackground,它说它已添加到 API 级别 16 但我的项目是 min SDK version is 7。为此,我正在使用 setBackgroundDrawable,但它不会在 api 低于 16 的运行时更改可绘制对象?这是我的代码 sn-p

@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@SuppressWarnings("deprecation")

private void setVariable() {
        try {

        //change the bg for save button
        int sdk = android.os.Build.VERSION.SDK_INT;
        if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
        //register.setBackground(getResources().getDrawable(R.drawable.btn_save));
                register.setBackgroundDrawable(getResources().getDrawable(R.drawable.btnsave));
            }else{
                register.setBackground(getResources().getDrawable(R.drawable.btn_save));
            }
            //register.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_save));
        } catch (Exception e) {
            // TODO: handle exception
    }
}

我应该使用什么?

【问题讨论】:

    标签: android view drawable imagebutton


    【解决方案1】:

    使用register.setBackgroundResource(R.drawable.btn_save);

    public void setBackgroundResource (int resid) 可从 API 级别 1 获得。

    【讨论】:

      【解决方案2】:

      你在写drawable的资源ID时弄错了。
      您正在使用 R.id.btnsave 而不是 *'R.drawable.btn_save'*
      否则,你的代码是绝对正确的!

      【讨论】:

      • 是的,我已经弄清楚了...我犯了错误,但是 register.setBackgroundResource(R.drawable.btn_save);正在为我工​​作......
      【解决方案3】:

      尝试以下方法:

      btn.setBackgroundResource(R.drawable.new_todo_image);
      

      并给出一些反馈

      希望对您有所帮助。

      【讨论】:

      • 是的,它的工作,但不知道为什么 register.setBackgroundDrawable(getResources().getDrawable(R.drawable.btnsave));不工作......
      • 我不知道你为什么改变主意接受我的回答
      猜你喜欢
      • 1970-01-01
      • 2012-08-10
      • 2012-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-23
      • 2015-02-17
      相关资源
      最近更新 更多