프로그램/Android

Google Marker 안에 이미지 넣기

잡식성초보 2016. 6. 9. 10:32


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


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





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


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


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)




반응형