Android карты Google плавно меняют радиус круга

android google-maps

2472 просмотра

1 ответ

30 Репутация автора

У меня есть карта, где мне нужно нарисовать круг. Проблема в том, что круг должен быть изменяемого размера ( например, у меня есть seekbarи на основе seekbarзначений я должен видеть, как меняется размер моего круга (радиус)). Я знаю, как нарисовать круг, но не представляю, как сделать круг динамически изменяемым. Является ли это возможным?

РЕДАКТИРОВАТЬ здесь, как я добавляю круг на мою карту

@Override
    public void onMapClick(LatLng latLng) {
        mMap.addCircle(new CircleOptions()
                .center(latLng)
                .radius(100)
                .strokeWidth(0)
                .fillColor(0x66aaaFFF));
    }

как вы можете видеть, я устанавливаю радиус 100 каждый раз, когда нажимаю на карту. Однако радиус должен измениться, и круг должен быть нарисован плавно, основываясь на значениях панели поиска

Автор: user2865835 Источник Размещён: 19.07.2016 08:23

Ответы (1)


7 плюса

15962 Репутация автора

Вы можете сделать его динамически изменяемым, изменяя радиус круга, используя setRadiusметод onProgressChangedиз OnSeekBarChangeListener:

private Circle circle;

circle = mMap.addCircle(new CircleOptions()
    .center(new LatLng(52, 5))
    .fillColor(Color.RED)
    .radius(100));

AppCompatSeekBar progress = (AppCompatSeekBar) findViewById(R.id.progress);
progress.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
        circle.setRadius(progress);
    }

    @Override
    public void onStartTrackingTouch(final SeekBar seekBar) {
    }

    @Override
    public void onStopTrackingTouch(final SeekBar seekBar) {
    }
});

Однако существует связанная нерешенная известная ошибка Google Maps (ошибка 5707: ошибка: мерцание при круговом заполнении при быстром радиусе окружности и обновлении центра ), вызывающее мерцание при заполнении.

ОБНОВИТЬ:

Вопрос 5707 решен 24 октября 2016 года.

Автор: antonio Размещён: 19.07.2016 09:27
Вопросы из категории :
32x32