मैं विशिष्ट {L0} का उपयोग करके google map पर तरंग एनीमेशन सेट करने का प्रयास कर रहा हूं, कृपया जो वास्तव में वर्णन करता है कि मैं क्या चाहता हूं, मैंने उपरोक्त लिंक को संदर्भित किया लेकिन google map पर एनीमेशन सेट करने में असमर्थ।

मैंने अब तक जो कोशिश की वह है-

मेरा xml कोड:

<com.test.custom.RippleBackground
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/rippleLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:visibility="gone"
        app:rb_color="#0099CC"
        app:rb_duration="5000"        
        app:rb_radius="32dp"
        app:rb_rippleAmount="4"
        app:rb_scale="6" >

        <ImageView
            android:id="@+id/imgMapProfile"
            android:layout_width="64dp"
            android:layout_height="64dp"
            android:layout_centerInParent="true"
            android:src="@drawable/ic_profile_active" />
    </com.test.custom.RippleBackground>

मेरा जावा कोड गूगल मैप पर तरंग रखने के लिए:

 LatLng currentAddressLatLong;              
                        currentAddressLatLong = new LatLng(gps.getLatitude(), gps.getLongitude());

                    RippleBackground rippleLayout=(RippleBackground)findViewById(R.id.rippleLayout);
                    rippleLayout.setVisibility(View.VISIBLE);
                    ImageView imgMapProfile=(ImageView)findViewById(R.id.imgMapProfile);

                    Bitmap markerUserBitmap = Comman.createDrawableFromView(NearByActivity.this, rippleLayout);
                    googleMap.addMarker(new MarkerOptions().position(currentAddressLatLong).icon(BitmapDescriptorFactory.fromBitmap(markerUserBitmap)));
                    googleMap.moveCamera(CameraUpdateFactory.newLatLng(currentAddressLatLong));
                    googleMap.animateCamera(CameraUpdateFactory.zoomTo(11));

                    rippleLayout.startRippleAnimation();

     // Convert a view to bitmap function
            public static Bitmap createDrawableFromView(Context context, View view) 
            {
                DisplayMetrics displayMetrics = new DisplayMetrics();
                ((Activity)context).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
                view.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
                view.measure(displayMetrics.widthPixels, displayMetrics.heightPixels);
                view.layout(0, 0, displayMetrics.widthPixels, displayMetrics.heightPixels);
                view.buildDrawingCache();
                Bitmap bitmap = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(), Bitmap.Config.ARGB_8888);

                Canvas canvas = new Canvas(bitmap);
                view.draw(canvas);

                return bitmap;
            }

लेकिन बिटमैप चेतन नहीं हो रहा है। कृपया मदद करे। बहुत बहुत धन्यवाद।

5
Leo Wiki 20 नवम्बर 2015, 09:02

4 जवाब

सबसे बढ़िया उत्तर

हर कोई जो इस तरह से गूगल मैप में रिपल बैकग्राउंड बनाना चाहता है, उसके लिए यहां छवि विवरण दर्ज करें

  1. एक ही सर्कल के साथ 3 GroundOverlay बनाएं। ड्रा करने योग्य फ़ोल्डर में छवि रखें
  2. वैल्यू एनीमेटर बनाएं
  3. समय-समय पर कोड के नीचे ValueAnimator में 3 ग्राउंडऑवर भेजें: onCreateView
 new Handler().postDelayed(new Runnable() {
                   @Override public void run() {final GroundOverlay groundOverlay11=googleMap.addGroundOverlay(new
        GroundOverlayOptions()
                           .position(latLng, 2000)
                           .transparency(0.5f)
                           .image(BitmapDescriptorFactory.fromResource(R.drawable.krug)));
                    OverLay(groundOverlay11);
                   }
                  }, 0);
    new Handler().postDelayed(new Runnable() {
       @Override
       public void run() {
        final GroundOverlay groundOverlay1=googleMap.addGroundOverlay(new GroundOverlayOptions()
                .position(latLng, 2000)
                .transparency(0.5f)
                .image(BitmapDescriptorFactory.fromResource(R.drawable.krug)));
        OverLay(groundOverlay1);
       }
      }, 4000);

    new Handler().postDelayed(new Runnable() {
       @Override
       public void run() {
        final GroundOverlay groundOverlay2=googleMap.addGroundOverlay(new GroundOverlayOptions()
                .position(latLng, 2000)
                .transparency(0.5f)
                .image(BitmapDescriptorFactory.fromResource(R.drawable.krug)));
        OverLay(groundOverlay2);
       }
      }, 8000);

और ओवरले वर्ग:

public void OverLay(final GroundOverlay groundOverlay){
  vAnimator = ValueAnimator.ofInt(0, 2000);
  int r=99999;
  vAnimator.setRepeatCount(r);
  //vAnimator.setIntValues(0, 500);
  vAnimator.setDuration(12000);
  vAnimator.setEvaluator(new IntEvaluator());
  vAnimator.setInterpolator(new LinearInterpolator());
  vAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
   @Override
   public void onAnimationUpdate(ValueAnimator valueAnimator) {
    float animatedFraction = valueAnimator.getAnimatedFraction();
    Integer i = (Integer) valueAnimator.getAnimatedValue();
    groundOverlay.setDimensions(i);
   }
  });
  vAnimator.start();
 }
11
Pehlaj - Mobile Apps Developer 28 अगस्त 2017, 04:35

येल्डोस के लिए धन्यवाद, मैं एनीमेशन के अंत में फीका आउट प्रभाव जोड़ने के लिए उनके कोड को मॉडिफाई करता हूं।

इस लाइन को ओवरले फ़ंक्शन के अंदर जोड़ें

groundOverlay.setTransparency(animatedFraction);

ठीक नीचे

groundOverlay.setDimensions(i);
1
Vodet 15 नवम्बर 2017, 14:34

Google मानचित्र पर तरंग प्रभाव दिखाने के लिए एक Android लाइब्रेरी है। इस लाइब्रेरी का उपयोग करते हुए, आपके प्रश्न के अनुसार Google नक्शे पर तरंग प्रभाव दिखाने के लिए कोड की सिर्फ 2 पंक्ति की आवश्यकता है। कृपया रिपल दिखाने के लिए लाइब्रेरी के लिए इस लिंक पर जाएँ: https://github.com/aarsy/GoogleMapsRippleEffect

0
Arsy 12 सितंबर 2016, 09:48

Animfolder sclae_fade.xml में फ़ाइल बनाएँ

<alpha
    android:duration="1000"
    android:fromAlpha="1.0"
    android:toAlpha="1.0"
    android:repeatCount="infinite"
    android:repeatMode="restart"
    />

Drawable में Circle_pulse.xml फ़ाइल बनाएँ

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="oval">
            <solid android:color="#5532a9f3"/>
            <size
                android:width="120dp"
                android:height="120dp"/>
        </shape>
    </item>
    <item>
        <shape android:shape="oval">
            <stroke android:color="@android:color/transparent"
                android:width="30dp"/>
            <solid android:color="#32a9f3"/>
            <size
                android:width="90dp"
                android:height="90dp"/>
        </shape>
    </item>
</layer-list>

अब एनीमेशन सेट करें

Animation logoMoveAnimation = AnimationUtils.loadAnimation(this, R.anim.scale_fade);
image_view.startAnimation(logoMoveAnimation);
0
mani 25 अप्रैल 2020, 22:13