Sam câu trả lời là điểm bắt đầu của tôi, nhưng hình ảnh không xuất hiện, chỉ có văn bản (Tôi sử dụng nó trên Google Map). Cuối cùng tôi đã làm việc với một số LayerDrawable
. Đây là giải pháp của tôi:
private Drawable createMarkerIcon(Drawable backgroundImage, String text,
int width, int height) {
Bitmap canvasBitmap = Bitmap.createBitmap(width, height,
Bitmap.Config.ARGB_8888);
// Create a canvas, that will draw on to canvasBitmap.
Canvas imageCanvas = new Canvas(canvasBitmap);
// Set up the paint for use with our Canvas
Paint imagePaint = new Paint();
imagePaint.setTextAlign(Align.CENTER);
imagePaint.setTextSize(16f);
// Draw the image to our canvas
backgroundImage.draw(imageCanvas);
// Draw the text on top of our image
imageCanvas.drawText(text, width/2, height/2, imagePaint);
// Combine background and text to a LayerDrawable
LayerDrawable layerDrawable = new LayerDrawable(
new Drawable[]{backgroundImage, new BitmapDrawable(canvasBitmap)});
return layerDrawable;
}
Nguồn
2012-11-29 14:48:46
bạn có biết làm thế nào để làm điều đó với một đường dẫn có thể vẽ được, vì vậy nó có thể lấy kích thước của văn bản? – Tsunaze
Bạn sẽ làm điều này như thế nào vì BitmapDrawable đã bị khấu hao?!? – M4tchB0X3r
Bạn có biết tại sao hình ảnh không hiển thị với câu trả lời của Sam không? – pptang