Tôi có thể hơi muộn nhưng tôi sẽ đăng giải pháp cho những người khác phải đối mặt/đang đối mặt với vấn đề tương tự. Vì vậy, về cơ bản những gì bạn phải làm (ít nhất là cho các giải pháp bạn đang tìm kiếm, tức là một hình ảnh tùy chỉnh áp đặt trên một nền giống như hộp) là áp đặt customImage trên hộp nền với sự giúp đỡ của một canvas. Sử dụng triển khai này, bạn có thể tạo BitmapDrawable một cách hiệu quả từ canvas mà sau đó bạn có thể gán làm điểm đánh dấu cho 'Lớp phủ'/'ItemizedOverlay' của bạn. Ngoài ra, vui lòng không tạo một ImageView cho mỗi lớp phủ vì điều này sẽ phá hủy hoàn toàn bộ nhớ/ứng dụng của bạn nếu bạn phải xử lý đồng thời với hàng nghìn ImageView như vậy. Thay vào đó, sử dụng BitmapDrawables có thể được gán cho các lớp phủ trong quá trình xây dựng của chúng và không tiêu thụ bộ nhớ gần như đủ như một ImageView.
public BitmapDrawable imageOnDrawable(int drawableBackground, Bitmap customImage)
{
//The following line is optional but I'd advise you to minimize the size of
//the size of the bitmap (using a thumbnail) in order to improve draw
//performance of the overlays (especially if you are creating a lot of overlays).
Bitmap customImageThumbnail = ThumbnailUtils.extractThumbnail(
customImage, 100, 100);
Bitmap bm = BitmapFactory.decodeResource(getResources(), drawableId);
bm = Bitmap.createScaledBitmap(bm, 112, 120, false);
Canvas canvas = new Canvas(bm);
canvas.drawBitmap(bm, 0, 0, null);
// The 6,6 in the below line refer to the offset of the customImage/Thumbnail
// from the top-left corner of the background box (or whatever you want to use
// as your background)
canvas.drawBitmap(customImageThumbnail, 6, 6, null);
return new BitmapDrawable(bm);
}
Nguồn
2012-07-09 18:55:38
tôi đã nhìn vào điều này và bây giờ tôi đang cố gắng để thực hiện cho phép nhìn thấy ... – Akram
MapView-baloon điều khác nhau của nó – Akram
Nó cho phép bạn để thổi phồng bất cứ điều gì 'View' (bao gồm tùy chỉnh' ImageView') . Nhưng không ** thay vì ** của 'Drawable', thay vì nó (nhưng bạn luôn có thể sử dụng drawable trong suốt). Và tôi nghĩ rằng nó không phải là khó để hack nó, vì vậy nó không hiển thị onTap, nhưng thay vì luôn luôn. –