2011-07-18 97 views
5

我想在Google地圖上顯示用戶的當前位置。每件事情對我來說都很好。我只是使用標記來顯示地圖上的當前位置。現在我想讓該標記閃爍,就像在Android手機上的原始Google地圖應用一樣。我想我必須爲此使用動畫,但我不知道如何使用它。我在網上搜索它,但我沒有得到任何解決方案。任何人幫助我,請.....如何在Google地圖上顯示閃爍的圖標

+0

http://stackoverflow.com/questions/5113652/marker-blinking-on -google-map-in-android/5113730#5113730 – ingsaurabh

回答

4

的Android GPS圖標使用下面的邏輯。保留兩張帶有暗淡圖像的可繪製圖像和一張帶有明亮圖像的可繪製圖像。在一定的時間內改變它們,它會看起來像圖像閃爍。

<animation-list 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:oneshot="false"> 
    <item android:drawable="@drawable/dull" android:duration="10000" /> 
    <item android:drawable="@drawable/bright" android:duration="10000" /> 
</animation-list> 
+0

嗨,Vinoth如何使用此代碼。請給我一些例子 –

+0

@Vinoth:我猜這隻適用於imageview,並且你無法用overlays做動畫。你有任何使用overlayitem做動畫的方法。 任何幫助將不勝感激。 –

+0

如何以編程方式對@Vinoth? –

0

由於標記本身不是一個視圖,它似乎使用動畫框架是不可能的。

因此,下面的方法(雖然粗糙周圍的邊緣)的作品雖然在利率保持它上點: - 它不會停止(只需添加一個標誌,檢查設置其他地方) - 你要取消它在下一個標記點​​擊,以避免在同一標記上多次運行

假設你有一個標記的引用(例如使用onMarkerClick回調),並且你正在UI線程上執行。使用標記alpha設置和(在本例0.5)1.0步驟它向下或向上(在本示例中的步驟0.1)到下限

// Assume I have a marker reference 'm', e.g. from a onMarkerClick 

    // .. in context of onMarkerClick for example 
    //  change the '500' (millis) to adjust the blinking rate. 
    new Handler().postDelayed(new AnimateMarker(m, 0.5F, 0.1F), 500); 

...,並在類定義別處

public class AnimateMarker implements Runnable { 

    float tgtalpha; 
    float delta; 

    private Marker m; 
    public AnimateMarker (Marker m, float tgt, float delta) { 
     this.m = m; 
     this.tgtalpha = tgt; 
     this.delta = delta; 
    } 

    @Override 
    public void run() { 
     float a = m.getAlpha(); 
     if (a <= tgtalpha || a >= 1.0F) { 
      delta *= -1.0F; 
     } 
     a += delta; 
     m.setAlpha(a); 


     new Handler().postDelayed(new AnimateMarker(m, tgtalpha, delta), 500); 
    } 
} 

請注意,您可以在運行(做不同的事情),如「旋轉」標誌使用 旋轉屬性:

 // modified snippet of 'run' method 
     float a = m.getRotation(); 
     if (a >= 350.0) { 
      a = 0; 
     } else { 
      a += 10.0F; 
     } 
     m.setRotation(a); 

其他可能的屬性來操縱(或combinat離子): - 錨點 - 這將導致它如果巧妙地完成搖擺 - 能見度 - 使其出現/消失(可能很煩人)

相關問題