2016-07-19 117 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