본문 바로가기

프로그램/Android

Google Marker 안에 이미지 넣기

반응형


구글 마커에 이미지를 넣는 방법이다.


대충 이미지가 아래와 같다.





이런 마커에 하얀색 부분에 동그란 이미지를 넣는 방법이다.


일단 이미지를 동그랗게 만든다.


public static Bitmap getCroppedBitmap(Bitmap bitmap) {
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(output);

final int color = 0xff424242;
final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());

paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawCircle(bitmap.getWidth() / 2, bitmap.getHeight() / 2,
bitmap.getWidth() / 2, paint);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
return output;
}


동그랗게 만든 이미지를 마커 이미지랑 합친다.


public static Bitmap sumImage(Context ctx, Bitmap baseBmp, Bitmap overl) {
Bitmap resultBmp = Bitmap.createBitmap(baseBmp.getWidth(),
baseBmp.getHeight(),
baseBmp.getConfig());

int scaleSize = (int) ((double) baseBmp.getWidth() * 0.54);

Bitmap resized = Bitmap.createScaledBitmap(overl, 픽셀로 높이를 준다. 픽셀로 높이를 준다, true);


int left_dist = (int) ((double) baseBmp.getWidth() * 0.24);
int top_dist = (int) ((double) baseBmp.getHeight() * 0.07);

Canvas canvas = new Canvas(resultBmp);
canvas.drawBitmap(baseBmp, 0, 0, null);
canvas.drawBitmap(resized, 얼마나 띄울지 픽셀로 준다, 얼마나 띄울지 픽셀로 준다, null);
return resultBmp;
}


이렇게 하여 합쳐진 이미지를 마커에 넣어주면 된다.

.icon(BitmapDescriptorFactory.fromBitmap(bitmap)




반응형