操作栏背景颜色按比例变化

Actionbar background color changes on scale

我使用此代码更改了与 appcompat lib 一起使用的操作栏颜色:

actionBar.setBackgroundDrawable(new ColorDrawable(R.color.teleblue));

但在使用中颜色会发生变化,并且在不同的屏幕尺寸下颜色是不同的。 我不想用棘手的方法来清理原来的问题。我该如何解决?

谢谢

R.color.teleblue 是资源标识符而不是 #AARRGGBB 颜色。

取决于类型 actionBar 以下某些选项可能可用也可能不可用:

actionBar.setBackgroundResource(R.color.teleblue); // if it's Toolbar

actionBar.setBackgroundDrawable( // if it's ActionBar
    new ColorDrawable(
        actionBar.getThemedContext().getResources().getColor(R.color.teleblue));

actionBar.setBackgroundDrawable( // if it's ActionBar
    ContextCompat.getDrawable(
        actionBar.getThemedContext(),
        R.color.teleblue));

actionBar.setBackgroundDrawable( // if it's Toolbar
    ContextCompat.getDrawable(
        actionBar.getContext(),
        R.color.teleblue));