2013-03-11 29 views
15

Tôi đang viết một ứng dụng dựa trên bản đồ trên Android bằng API Maps v2.Nhiều thông tin Windows trong API bản đồ Android 2

Tôi đã có các điểm đánh dấu được đặt trên bản đồ và có thể hiển thị cửa sổ thông tin tùy chỉnh cho các điểm đánh dấu đó, nhưng chỉ có thể hiển thị một cửa sổ thông tin tại một thời điểm. Có một vài điểm mà tôi muốn hành vi khác nhau: Tôi muốn luôn hiển thị cửa sổ thông tin cho nhiều cửa sổ, không có điểm đánh dấu hiển thị.

Tôi cho rằng tôi có thể viết một số mã để vẽ cửa sổ thông tin tới canvas được bitmap hỗ trợ và chuyển các bitmap đó vào bản đồ dưới dạng đánh dấu "biểu tượng". Đây là loại tổng hợp những gì tôi đang cố gắng làm khá tốt: Tôi muốn các cửa sổ thông tin để được điểm đánh dấu của tôi. Nhưng cách tiếp cận này sẽ yêu cầu tôi viết mã khung cửa sổ của riêng tôi mà tôi muốn tránh.

Có cách nào tốt hơn để hỗ trợ nhiều cửa sổ thông tin được hiển thị cùng một lúc không?

Trả lời

19

Trong các tài liệu đó khẳng định:

Kể từ khi chỉ có một cửa sổ thông tin hiển thị ở bất kỳ một thời gian, nhà cung cấp này có thể chọn để tái sử dụng quan điểm, hoặc nó có thể chọn để tạo quan điểm mới về mỗi phương pháp yêu cầu.

Vì vậy, bạn không thể làm điều đó với infoviews thông thường nhưng không quá khó tạo đánh dấu hoạt động như infoviews.

Sửa

Tôi muốn tạo ra một cái nhìn trong xml mà bạn muốn sử dụng như một dấu hiệu/thoại. Một cái gì đó như thế này:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="100dp" 
    android:layout_height="100dp" 
    android:orientation="vertical" 
    android:background="@android:color/white" 
    > 
    <TextView 
     android:text="test" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 
    <ImageView 
     android:src="@drawable/ic_launcher" 
     android:layout_width="50dp" 
     android:layout_height="50dp"/> 
</LinearLayout> 

Sau đó, tôi muốn chuyển đổi quan điểm này vào một bitmap và sử dụng bitmap đó như là dấu hiệu của tôi:

 ImageView image = (ImageView) findViewById(R.id.main_image); 

     LinearLayout tv = (LinearLayout) this.getLayoutInflater().inflate(R.layout.test_layout, null, false); 
     tv.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 
       MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); 
     tv.layout(0, 0, tv.getMeasuredWidth(), tv.getMeasuredHeight()); 

     tv.setDrawingCacheEnabled(true); 
     tv.buildDrawingCache(); 
     Bitmap bm = tv.getDrawingCache(); 
+0

Bất kỳ gợi ý về cách để làm cho các dấu hiệu hoạt động như quan điểm thông tin? –

+0

@SorinComanescu Tôi sẽ đi với một cái gì đó như thế này: http://stackoverflow.com/a/3036736/969325. Nhưng nó đã chứng tỏ là một chút khó khăn khi bạn thổi phồng quan điểm của riêng bạn. Nhưng đó sẽ là con đường tôi muốn thử. Điều đó nói rằng, tôi đã không bao giờ thực hiện nó và có vẻ như không có thay thế cho các phương pháp cũ cho bản đồ google (bằng cách sử dụng một itemizedoverlay). – Warpzit

+2

@SorinComanescu Tôi đã cố gắng tìm ra. Tôi đã thêm một ví dụ đơn giản với lời giải thích. – Warpzit

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