this과 같은 작업을하려고하지만 모양이 약간 융통성이 있습니다. 본질적으로 파이의 일부만 채워진 파이 차트 (그리고 나머지는 비어 있음) 또는 일종의 다이얼 차트입니다.Android Polar Graphing
극좌표를 사용하여 두 개의 화살표 (0도 1도 및 1도 -92도)를 그리는 것도 상대적으로 쉽지만 Android에서이 작업을 수행 할 수있는 라이브러리는 찾을 수 없습니다. 0 도가 실제로 극좌표 0도처럼 보일 때가 필요합니다.
저는 AChartEngine DialChart를 사용하여 가까이에서 뭔가를 얻을 수 있었지만 각 화살표에 표시되는 레이블을 얻는 방법을 알 수는 없습니다. renderer.setDisplayValues(true);
과 series.setDisplayChartValues(true);
을 시도했지만 두 개의 화살표에 값이 표시되지 않으므로 DialChart에서도 가능한지 확실하지 않습니다. 배경에 다이얼의 레이블을 표시하면 사용자가 화살표에 레이블을 지정할 필요가 없지만 0을 0으로 보이게하려면 DialChart가 추가 된 LinearLayout을 회전시키고 있습니다. 극지 그래프에서. 또한 renderer.setShowLabels(false);
을 사용하고 허위로 표시 할 수있는 모든 다른 것들을 설정 했음에도 불구하고 백그라운드에서 다이얼의 레이블을 숨기기 위해 고심하고 있습니다. 내 해킹은 라벨 색상을 배경 색상으로 설정하는 것이지만 더 좋은 방법이 있다면 알려 주시기 바랍니다.
다음은 DialChart 용 코드입니다.
CategorySeries category = new CategorySeries("Angle");
category.add("Extension", 0);
category.add("Flexion", 90);
renderer = new DialRenderer();
renderer.setLabelsColor(getActivity().getResources().getColor(R.color.background));
renderer.setInScroll(true);
renderer.setDisplayValues(true);
renderer.setShowLegend(false);
renderer.setShowAxes(false);
renderer.setShowLabels(false);
renderer.setShowGrid(false);
renderer.setMargins(new int[] {20, 30, 15, 0});
renderer.setVisualTypes(new DialRenderer.Type[] {Type.ARROW, Type.ARROW});
renderer.setMinValue(-20);
renderer.setMaxValue(280);
renderer.setPanEnabled(false);
renderer.setZoomEnabled(false);
SimpleSeriesRenderer r = new SimpleSeriesRenderer();
series.setColor(getActivity().getResources().getColor(R.color.green));
series.setDisplayChartValues(true);
series.setChartValuesTextSize(30);
visualizationRenderer.addSeriesRenderer(r);
r = new SimpleSeriesRenderer();
series.setColor(getActivity().getResources().getColor(R.color.green));
series.setDisplayChartValues(true);
series.setChartValuesTextSize(30);
renderer.addSeriesRenderer(r);
visualization = ChartFactory.getDialChartView(getActivity(), category, renderer);
LinearLayout layout = (LinearLayout) this.getView().findViewById(R.id.sessions_visualization);
layout.addView(visualization);
layout.setRotation(220.0f);
나는이 코드를 수정하여 작동하는 것을 얻거나, 내가하려고하는 것을 달성하는 데 도움이되는 다른 라이브러리를 열어 둔다. 감사!
해결책을 찾은 것 같습니다. 질문의 마지막 단락입니다. –
다른 사람들이 비슷한 것을했는지 (몇 시간 동안 검색 한 후에도 아무 것도 찾을 수 없었 음) 알지 못했기 때문에 AChartEngine을 얻을 수 없어 라이브러리가 더 잘 작동하는지 알고 있는지 마지막 단락에 질문했습니다. 내가 원하는 걸 해줄거야. 나는 사용자 정의보기를 만들었습니다 (지금까지 안드로이드에서 할 수있는 것을 몰랐습니다). – laberle