2013-05-14 2 views
0

나는, RGB 값을 사용하지 않도록하기 위해 노력하고있어 그래서이 방법 : 내가 전달하는데있어AndroidPlot : 배경 및 colors.xml 자원 ID에 전달할 때 LineAndPointFormatter는 충돌을 야기

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)); 

등을 ..

필자는 pluggin을 멀리 두지 만 Context 버전의 LineAndPointFormatter를 사용하고 있다면 비슷한 문제가 발생했을 수 있습니까?

05-14 12 : 47 :

예외는 다음과 같습니다 25.917 : E/AndroidRuntime (14023) : android.content.res.Resources $ NotFoundException :

해야합니까 0xff0000ff 자원 ID 번호 내 색상을 # 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> 
+0

안녕하세요 whyoz, xmlCfgId – Nick

+0

@ 닉에 해당하는 xml 파일의 내용을 게시하고 colors.xml을 추가하고 업데이트하기 위해 #ff0000ff의 투명도 형식을 추가했는데 동일한 오류가 발생했습니다. – whyoz

답변

2

나는 문제가 당신이 "구성 프로그램"에 의해 구성되는 객체에 관련되지 않은 요소가 포함 된 XML 리소스를 사용하고 있다고 생각합니다. 구성자는 리플렉션을 사용하여 XML 값을 연관된 객체의 멤버에 매핑하는 방법을 찾습니다. 이를 위해 xml 파일 에만에는 구성중인 개체의 실제 구성원에 대한 요소가 포함되어 있고 해당 요소는 과 동일한 구성원 이름을 공유해야합니다.

위의 예에서는 존재하지 않는 은색, 회색 등의 이름을 가진 요소가 포함 된 xml 파일을 사용하여 LineAndPointFormatter를 구성하려고합니다. 에 당신이 시도 할 수있는이 파일 무언가를 정의하면 (나는 개인적으로이 시도하지했지만 작동해야 가정)

<?xml version="1.0" encoding="utf-8"?> 
<config vertexPaint.color="#00FF00" 
     linePaint.color="#00FF00" 
     linePaint.strokeWidth="2dp"/> 

대신 당신이 뭔가를 찾고 별도의 XML 파일에 설정을 저장해야합니다 colors.xml에서 값을 참조하면 예를 들어 색상 회색의 정의를 조정할 때 전역 적으로 조정됩니다.

+0

최대한 빨리 시도해 보겠습니다! 지금은 setR, setG 및 setB를 내 객체에 추가하여 멋지게 작동합니다. 지금까지 AndroidPlot으로 작업 한 것을 정말 즐겁게 생각했습니다. 그래서 제 질문에 답할 계획이라 할지라도, 답장을하고 질문에 대한 도움을 추가하고 싶습니다. 당신은 바쁜 사람입니다. 그래서 저는 내가 할 수있는만큼 돕고 싶다. – whyoz

+0

많이 감사드립니다 :) – Nick

+0

http://androidplot.com/forum/ 대신 여기에 게시하는 사용자에게 문제가 있습니까? 나는 당신의 공개 토론에 포스트로 그 때 그 때 그것을 중대한 세부 사항에있는 나의 자신의 질문에 응답하기 위하여 질문으로 여기에서 베끼었다. – whyoz