Java getResources().getColor在自定义视图中不工作
我已经创建了自定义视图,似乎无法从那里访问自定义的颜色。我的整个应用程序由以下3个文件组成 位于res/values文件夹中的colors.xml: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
<?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之类的值。顺便说一句,我刚刚弄明白并发布了答案,但是谢谢你帮我研究这个问题。