안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요. 초짜 개발자 입니다.
책을 보고 Bitmap 이나 Drawable을 통해서 이미지를 나타내는 것까지는 했습니다.
canvas.drawBitmap() or mFrontImage[i].draw(canvas);
네모난 이미지(bmp)를 읽어온뒤 둥글게 잘라서 이외 부분은 투명하게 하고 싶습니다.
물론 이미지 자체를 png로 만들어서 할수도 있지만요.
제가 원하는것은 동적으로 자르는 크기를 변경해가면서 나타내고 싶어요.
고수님들의 조언좀 부탁드립니다.
수고하세요.
2009.07.29 00:50:31
으음 Xfermode를 이용해서 원본 이미지에 라운드에 투명효과를 주는 이미지를 적절한 효과로 적용해서 둥글게 만들어진 Bitmap을 얻을 수 있을것 같긴합니다만. 이게 성능상에 별문제가 없는지 실제로 가능한지 작업을 해보지는 않아서 머라고 말씀 못드리겠네요. ApiDemos의 Xfermodes 소스를 한번 참고해보세요. 제가 알고 있는 힌트는 여기 까지입니다. 성공하시면 자세한 방법 포스팅 부탁드립니다. :)
2010.07.13 16:24:55
public static Bitmap getRoundedCornerBitmap(Bitmap bitmap) {
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), 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());
final RectF rectF = new RectF(rect);
final float roundPx = 12;
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
return output;
}