Android java Canvas - Эффективное рисование объектов liveata - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь контролировать Room DB LiveData с помощью наблюдателя и рисовать их на холсте.

activity.citiesController
                .getLiveCities().observe(activity, cities ->{
            if(cities==null) return;
            for (LivingCity city : cities) {
                final float x = (float) city.position_x* mapScale;
                final float y = (float) city.position_y* mapScale;
                Log.d("MapCtrl",String.format(loc,"Drawing city @(%.2f,%.2f)+%.2f",
                        x,y,squareSize));
                mCanvas.drawRect(new RectF(
                    x,y,x+squareSize,y+squareSize),
                    citySquarePainter);
            }
            invalidate();
        });

По журналу я могу сказать, что событие запускается, но на самом деле это не помещаетобъект ... когда я перемещаю drawRect () в свой onDraw в качестве теста, я вижу, что он работает нормально ... Чего мне не хватает, и есть ли лучший способ хранить сотни таких объектов, а не просматривать их список

...