Заполните другой цвет для круга внутри круга, используя краски в Java - PullRequest
0 голосов
/ 04 сентября 2018

enter image description here

Я использую библиотеку jjoe64:graphview для рисования графика в Android. Как вы можете видеть на прикрепленном изображении, я хочу, чтобы точка данных была кругом внутри круга и имела разные цвета заливки для кругов.

Я могу нарисовать круг внутри круга, но не могу понять, как сделать разные цвета для кругов.

Вот мой код

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        GraphView graphView = findViewById(R.id.graph);
        LineGraphSeries<DataPoint> series = new LineGraphSeries<>(new DataPoint[]{
            new DataPoint(0.0,10),
                new DataPoint(1.0,1),
                new DataPoint(2.0,9),
                new DataPoint(3.0,4),
                new DataPoint(4.0,3),
                new DataPoint(5.0,1),
                new DataPoint(6.0,10),
                new DataPoint(7.0,15),
                new DataPoint(8.0,16),
                new DataPoint(9.0,23),
                new DataPoint(10.0,22),
                new DataPoint(11.0,11),
                new DataPoint(12.0,10),
                new DataPoint(13.0,0)
        });

        series.setTitle("Random Curve 1");
        series.setColor(getResources().getColor(R.color.colorAccent));
        series.setThickness(8);

        graphView.getGridLabelRenderer().setNumVerticalLabels(10);
        graphView.getGridLabelRenderer().setNumHorizontalLabels(10);
        graphView.addSeries(series);

        PointsGraphSeries<DataPoint> series1 = new PointsGraphSeries<>(new DataPoint[]{
                new DataPoint(0.0,10),
                new DataPoint(1.0,1),
                new DataPoint(2.0,9),
                new DataPoint(3.0,4),
                new DataPoint(4.0,3),
                new DataPoint(5.0,1),
                new DataPoint(6.0,10),
                new DataPoint(7.0,15),
                new DataPoint(8.0,16),
                new DataPoint(9.0,23),
                new DataPoint(10.0,22),
                new DataPoint(11.0,11),
                new DataPoint(12.0,10),
                new DataPoint(13.0,0)
        });
        series1.setShape(PointsGraphSeries.Shape.POINT);
//        series1.setShape();
        series1.setCustomShape(new PointsGraphSeries.CustomShape() {
            @Override
            public void draw(Canvas canvas, Paint paint, float x, float y, DataPointInterface dataPoint) {
                paint.setStyle(Paint.Style.STROKE);
                for(int i=0;i<2;i++){
                    canvas.drawCircle(x,y,5+(i*2),paint);
                }
//                paint.setColor(getResources().getColor(android.R.color.black));
            }
        });
        series1.setSize(10);
        graphView.addSeries(series1);


    }

Код для рисования круга внутри круга находится в методе series1.setCustomShape. Можно ли рисовать с помощью Android XML и прикрепить его к точке данных?

...