2016-07-19 95 views
0

我有一张地图,我需要绘制圆圈。问题是,该圆应该可以调整大小(例如我有一个seekbar和基于seekbar值,我应该看看我的圆大小(半径)如何变化)。我知道如何绘制一个圆,但我无法想象如何使圆形动态调整大小。可能吗?Android谷歌地图顺利改变圆圈半径

编辑在这里,我怎么加圆我的地图

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

,你可以看到我每次都设置半径为100时,我在地图上点击。然而半径应该改变和圈应绘制平稳基于搜索条值

+0

这是http://stackoverflow.com/questions/38447464/android-google-map-circle-change-redius-的副本顺利 – antonio

+0

以及我没有找到答案。但它没有答案。 – user2865835

回答

5

你可以把它dinamycally可调整大小的改变使用setRadius法圆半径上的onProgressChangedOnSeekBarChangeListener

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) { 
    } 
}); 

但是有一个(Issue 5707: Bug: Circle filling flickers on fast circle radius and center update)导致填充闪烁的相关未知问题。

UPDATE:

问题5707已经solved on October 24, 2016

+0

谢谢你的答案可悲的是,这不是我的解决方案,因为闪烁。也许有另一种方法来做到这一点? – user2865835

+0

不幸的是,使用地图'圈子'是不可能的,因为我提到的错误。你可以在地图上的一个'View'上绘制一个圆圈并在那里绘制和更新你的圆圈,但是你的'View'和地图之间的同步会非常棘手(缩放,旋转和倾斜地图将迫使你手动更新你的'View')。我认为最好的选择是等待bug解决。 – antonio

+0

谢谢你回答这个错误是3岁:/ – user2865835