8

Tôi muốn đạt được hoạt ảnh đánh dấu như hoạt ảnh GIF. Tôi có hai hình ảnh sẽ nhấp nháy cùng một lúc. Tôi thấy không có gì có thể đạt được điều này trong Android. Tôi đang cố gắng làm là, tạo một trình xử lý chạy mỗi 1 giây và tôi đang cố gắng đặt biểu tượng cho điểm đánh dấu. Nhưng nó không hoạt động. Hãy hướng dẫn tôi đi đúng hướng.Loại hoạt ảnh GIF cho điểm đánh dấu trong bản đồ google api ANDROID

mã của tôi lúc này như sau.

Handler handler = new Handler(); 
    Boolean marker_color_bool = true; 

//adding marker and sending the marker instance to marker_animation() method where handler is called. 

MarkerOptions marker = new MarkerOptions() 
       .title(delivery_center_name) 
       .snippet("This is the " + delivery_center_name + " location") 
       .position(location) 
       .icon(BitmapDescriptorFactory.fromResource(R.drawable.red_marker)); 

     google_map.addMarker(marker); 

     marker_animation(marker); 

marker_animation() phương pháp

private final int ONE_SECONDS = 1000; 
public void marker_animation(final MarkerOptions marker) { 

    handler.postDelayed(new Runnable() { 
     public void run() { 

      Log.e("running",""+marker_color_bool); 

      if(marker_color_bool == true) 
      { 

       marker.icon(BitmapDescriptorFactory.fromResource(R.drawable.green_marker)); 
       marker_color_bool = false; 
      } 
      else 
      { 
       marker.icon(BitmapDescriptorFactory.fromResource(R.drawable.red_marker)); 
       marker_color_bool = true; 
      } 

      handler.postDelayed(this, ONE_SECONDS); 
     } 
    }, ONE_SECONDS); 
} 

phương pháp này doesnt work..Please giúp tôi những gì tôi đang làm sai.

+0

Sẽ tốt hơn nếu mọi người đưa ra lý do trong nhận xét là lý do câu hỏi được bỏ phiếu. Vì vậy mà tôi cũng như những người khác có thể hiểu và tìm hiểu cách đặt câu hỏi một cách hiệu quả. Cảm ơn .. :-) –

+0

bạn có thể đăng giải pháp của mình cho câu trả lời này không? –

+0

@PabloCegarra Tôi đang sử dụng Marker thay vì tùy chọn đánh dấu. Điểm đánh dấu = điểm đánh dấu mới(). và nó cũng có setIcon thay đổi biểu tượng trong trình xử lý hoạt ảnh từ mã trên. –

Trả lời

5

Xin hãy giúp tôi những gì tôi đang làm sai

Bạn đang sửa đổi một đối tượng mà không còn được sử dụng. Sau khi được gọi là addMarker(), đối tượng MarkerOptions không có ý nghĩa gì thêm, nhưng đây là những gì bạn đang sửa đổi qua logic postDelayed() của mình.

(BTW, bạn không cần một Handler, như postDelayed() có sẵn trên bất kỳ View)

addMarker() trả về một Marker. Bạn sẽ cần phải làm việc với điều đó Marker để ảnh hưởng đến các thay đổi của mình, thông qua setIcon().

Ngoài ra, vì các ảnh bitmap của bạn không thay đổi, tôi khuyên bạn nên lưu vào bộ nhớ cache hai đối tượng BitmapDescriptor, thay vì tạo lại chúng trên mọi thẻ.

+1

yup cuối cùng tôi đã giải quyết nó bằng cách sử dụng điểm đánh dấu thay vì markeroptions, và cũng là marker.seticon. –

+0

Tôi muốn có chỉ báo tải bên trong hình ảnh điểm đánh dấu này và hình ảnh đánh dấu của tôi là hình ảnh tùy chỉnh, làm cách nào tôi có thể làm điều đó? – neena

+0

@neena: Nếu bằng cách "chỉ báo tải", bạn có nghĩa là điều gì đó hoạt hình, không được hỗ trợ. – CommonsWare

Các vấn đề liên quan