Java getResources().getColor在自定义视图中不工作

Java getResources().getColor在自定义视图中不工作,java,android,colors,custom-view,getresource,Java,Android,Colors,Custom View,Getresource,我已经创建了自定义视图,似乎无法从那里访问自定义的颜色。我的整个应用程序由以下3个文件组成 位于res/values文件夹中的colors.xml: <?xml version="1.0" encoding="utf-8"?> <resources> <color name="black">#000000</color> </resources> 和MainActivity.java: public class MainActivit

我已经创建了自定义视图,似乎无法从那里访问自定义的颜色。我的整个应用程序由以下3个文件组成

位于res/values文件夹中的colors.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="black">#000000</color>
</resources>
和MainActivity.java:

public class MainActivity extends Activity {

    private static final String TAG = "MainActivity";
    TestView testView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        testView = new TestView(this);
        setContentView(testView);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}
我得到的只是一个空白的白色屏幕,应该是黑色的!我已经连续两天试图找出可能是什么导致了这种情况,不用说,我已经尝试了很多无效的方法。如果有人能帮我解决这个问题,我将不胜感激


谢谢

我刚刚想到了这一点。问题是我正在构造函数中设置
viewWidth
viewHeight
。当我刚刚在
onDraw(Canvas Canvas)
中直接调用
getWidth()
getHeight()
时,它起了作用。我猜这些值直到
onDraw
方法,或者至少直到构造函数之后才被设置


感谢Hoan Nguyen的帮助

我刚刚想到了这一点。问题是我正在构造函数中设置
viewWidth
viewHeight
。当我刚刚在
onDraw(Canvas Canvas)
中直接调用
getWidth()
getHeight()
时,它起了作用。我猜这些值直到
onDraw
方法,或者至少直到构造函数之后才被设置

感谢Hoan Nguyen的帮助

试试这个:

background.setColor(ContextCompat.getColor(context,R.color.black));
试试这个:

background.setColor(ContextCompat.getColor(context,R.color.black));

mispell应该是R.colors.black而不是R.color.black Hey Hoan Nguyen。如果我写R.colors.black,它不会编译,是的,xml的名称是colors.xml。这是我已经尝试过的事情之一,但是谢谢你的建议!gen文件夹是否包含R.colors.black id?嘿,Hoan。是的,我已经检查过了,它包含0x04f0000之类的值。顺便说一句,我刚刚弄明白并发布了答案,但是谢谢你帮我研究这个问题。mispell应该是R.colors.black而不是R.color.black Hey Hoan Nguyen。如果我写R.colors.black,它不会编译,是的,xml的名称是colors.xml。这是我已经尝试过的事情之一,但是谢谢你的建议!gen文件夹是否包含R.colors.black id?嘿,Hoan。是的,我已经检查过了,它包含0x04f0000之类的值。顺便说一句,我刚刚弄明白并发布了答案,但是谢谢你帮我研究这个问题。