我有一张需要画圆圈的地图。问题是圆应该是可调整大小的(例如,我有一个seekbar
,基于seekbar
值,我应该看到我的圆圈大小(半径)是如何变化的)。我知道如何画一个圆,但我无法想象如何使圆圈动态调整大小。有可能吗?
在这里编辑我是如何在地图上添加圆圈的
@Override
public void onMapClick(LatLng latLng) {
mMap.addCircle(new CircleOptions()
.center(latLng)
.radius(100)
.strokeWidth(0)
.fillColor(0x66aaaFFF));
}
如您所见,每次单击地图时,我都将半径设置为100。然而,半径应该改变,圆应该根据查找条的值平滑地绘制。
发布于 2016-07-19 01:27:00
您可以使用setRadius
方法在OnSeekBarChangeListener
的onProgressChanged
上使用改变圆周半径的方法使其具有极小的大小。
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 (第5707期:错误:快速圆半径上的圈填充闪烁和中心更新)会导致填充闪烁。
更新:
问题5707一直是2016年10月24日破案
https://stackoverflow.com/questions/38453093
复制