본문으로 바로가기

인터넷에 이미지뷰 라운딩 하는 방법을 검색해보면 다양한 방법들이 나오는데

주로 비트맵으로 변환해서 직접 잘라내거나 하는 아주 복잡하고 힘든 방법들을 쓴다.

하지만 이 방법은 아주 쉽고 간단하게 라운딩을 할 수 있다.!!

특히 이 방법은 ImageView를 포함하고 있는 FrameLayout 등에 적용시켜서 하위 이미지뷰까지 전부 적용시킬 수도 있따.



1. 끝에만 라운딩 하는 법

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="8dp"/>
</shape>

먼저 이런 파일을 drawable 폴더에 만들어준다. 나는 background_rounding.xml 로 했다. radius는 원하는 만큼 설정하면 된다.


ImageView imageView = (ImageView) findViewById(R.id.image_view);

GradientDrawable drawable=
(GradientDrawable) context.getDrawable(R.drawable.background_rounding);

그리고 ImageView와 아까 만든 drawable을 찾는다.


imageView.setBackground(drawable);
imageView.setClipToOutline(true);

그 다음 ImageView의 Background로 등록해주고 setClipToOutline을 True로 설정해주면 끝!




2. 완전 동그랗게 라운딩 하는 법


이건 더 쉽다. 위처럼 따로 xml을 만들 필요도 없다.

imageView.setBackground(new ShapeDrawable(new OvalShape()));
imageView.setClipToOutline(true);

요렇게만 해주면 끝~!



출처: http://chocorolls.tistory.com/47 [초코롤의 개발이야기]