2011-07-18 14 views
5

मैं Google मानचित्र पर उपयोगकर्ता का वर्तमान स्थान दिखाना चाहता हूं। हर चीज मेरे लिए ठीक काम कर रही है। मैं मानचित्र पर वर्तमान स्थान दिखाने के लिए बस मार्कर का उपयोग कर रहा हूं। अब मैं एंड्रॉइड मोबाइल पर मूल Google मानचित्र ऐप में उस मार्कर को ब्लिंक करना चाहता हूं। मुझे लगता है कि मुझे इस उद्देश्य के लिए एनीमेशन का उपयोग करना है, लेकिन मुझे नहीं पता कि इसका उपयोग कैसे किया जाए। मैं इसे इंटरनेट पर खोज रहा हूं लेकिन मुझे कोई समाधान नहीं मिल रहा है। किसी को भी मेरी मदद कृपया .....Google मानचित्र पर आइकन ब्लिंकिंग कैसे दिखाएं

+0

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

उत्तर

4

स्थिति पट्टी चमकता है पर Android जीपीएस आइकन के नीचे का उपयोग कर तर्क। दो drawables एक सुस्त छवि के साथ एक और चमकदार छवि के साथ एक रखें। उन्हें कुछ अवधि में बदलें और ऐसा लगता है कि छवि झपकी दे रही है।

<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

हाय, विनोथ इस कोड का उपयोग कैसे करें। कृपया मुझे कुछ उदाहरण दें –

+0

@ विनोथ: मुझे लगता है कि यह केवल छविदृश्य के साथ काम करता है और ओवरले के साथ एनीमेशन करने का कोई तरीका नहीं है। क्या आपके पास ओवरलेइटम के साथ एनीमेशन करने का कोई तरीका है। किसी भी मदद की सराहना की जाएगी। –

+0

इस प्रोग्रामेटिक रूप से @ विनोथ कैसे करें? –

0

यह आप वास्तव में क्या जरूरत है

http://www.wiseandroid.com/post/2010/08/10/Making-a-simple-custom-Android-UI-animation.aspx

मुझे आशा है कि आप कोड समझते हैं। नोटिस इस बयान:

t.setAlpha(Math.abs(FloatMath.cos(period))); 

मुझे लगता है कि आप इसे 0 से 1 तक तो 1 से 0 करने के लिए बदल करने के लिए इसे संपादित करना होगा ... आदि

0

के बाद से मार्कर अपने आप में एक दृश्य यह चेतन ढांचे का उपयोग कर रहा है नहीं है एक संभावना नहीं है।

तो, निम्नलिखित दृष्टिकोण (किसी न किसी तरह यद्यपि किनारों के आसपास) हालांकि हित में मुद्दे पर यह ध्यान में रखते हुए काम करता है: - इसे रोकने नहीं करता है (सिर्फ एक फ्लैग जोड़ने कहीं और सेट की जाँच करने के) - आप करना चाहते हैं उसी मार्कर पर इसे रद्द करें

मान लें कि आपके पास मार्कर का संदर्भ है (उदाहरण के लिए मार्करक्लिक कॉलबैक का उपयोग करें) और आप यूआई थ्रेड पर निष्पादित कर रहे हैं। मार्कर अल्फा सेटिंग का उपयोग करें और यह नीचे 1.0 से एक कम सीमा के लिए कदम या ऊपर (इस उदाहरण में 0.1 चरणों में) (0.5 इस उदाहरण में)

// 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 आयनों): - लंगर बिंदु - यह यह wiggle करने के लिए कारण होगा अगर चालाकी से किया - दृश्यता - यह दिखाई/(शायद गायब कष्टप्रद) बनाने

संबंधित मुद्दे