我试图避免使用 rgb 值,所以这个方法:
public LineAndPointFormatter(Integer lineColor, Integer vertexColor, Integer fillColor) {
this(lineColor, vertexColor, fillColor, FillDirection.BOTTOM);
}
我应该通过的地方:
LineAndPointFormatter lpf = new LineAndPointFormatter(Color.rgb(0, 0, 200), null, Color.rgb(0, 0, 80));
工作得很好,但我想使用这种方法:
public LineAndPointFormatter(Context ctx, int xmlCfgId) {
// prevent configuration of classes derived from this one:
if (getClass().equals(LineAndPointFormatter.class)) {
Configurator.configure(ctx, this, xmlCfgId);
}
}
所以我可以使用 colors.xml 资源 ID 并通过设置“colorID”然后将其传递来管理所有图形颜色(colorID 在日志中显示为 -65536 或某些变化取决于 )。这段代码在一个扩展片段的类中,所以我想知道我是否得到了正确的上下文..
以下是我尝试过的一些事情:
LineAndPointFormatter seriesFormat = new LineAndPointFormatter(getActivity().getApplicationContext(), getResources().getColor(R.color.blue));
LineAndPointFormatter seriesFormat = new LineAndPointFormatter(getActivity().getApplicationContext(), colorID);
LineAndPointFormatter seriesFormat = new LineAndPointFormatter(getActivity().getApplicationContext(), getResources().getColor(colorID));
等等..
我会保留插件,但如果有人使用 LineAndPointFormatter 的上下文版本,也许你遇到了类似的问题?
异常如下所示:
05-14 12:47:25.917: E/AndroidRuntime(14023): android.content.res.Resources$NotFoundException: 资源 ID #0xff0000ff
我必须将我的颜色重写为#ff0000ff 格式吗?
编辑:添加了 colors.xml
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<color name="white">#FFFFFF</color>
<color name="transparent_white">#66FFFFFF</color>
<color name="yellow">#FFFF00</color>
<color name="fuchsia">#FF00FF</color>
<color name="red">#FF0000</color>
<color name="silver">#C0C0C0</color>
<color name="gray">#808080</color>
<color name="olive">#808000</color>
<color name="purple">#800080</color>
<color name="maroon">#800000</color>
<color name="aqua">#00FFFF</color>
<color name="lime">#00FF00</color>
<color name="teal">#008080</color>
<color name="green">#008000</color>
<color name="blue">#0000ff</color>
<color name="navy">#000080</color>
<color name="black">#000000</color>
</resources>