이번 포스팅은 이미지뷰에 scaleType-centerCrop이 적용되지 않을 경우 사용할 수 있는
setOutlineProvider 메소드를 정리한다.
scaleType 속성이 어떤 경우에 작동하지 않는 건지는 .. 잘 모르겠음
아래는 적용한 소스다.
imageView.setOutlineProvider(new ViewOutlineProvider() {
@Override
public void getOutline(View view, Outline outline) {
outline.setRoundRect(8,8,view.getWidth()-8,view.getHeight()-8,12);
}
});
imageView.setClipToOutline(true);
선언한 ImageView 객체에 setOutlinePovider 메소드를 적용하면 된다.
getOutline 내부에 있는 setRoundRect에 원하는 영역과 radius 수치를 작성해주면 되는데,
주의할 점은 사용할 ImageView에 border가 있는 경우 그 영역을 제외하고
이미지를 표시할 영역의 크기 만큼만 설정해 주어야 한다.
(1~4번째 인자를 통해서 : 순서대로 left, top, right, bottom 영역이다.)
마지막 인자에는 원하는 radius 수치를 입력하면 된다.
마무리로 ImageView에 setClipToOutline 을 true값으로 설정한 뒤 작동시키면
입력한 radius 값이 반영된 걸 확인할 수 있다.
'JAVA > Android' 카테고리의 다른 글
[JAVA][Android] 데이터 직렬화 (Serialize) (0) | 2022.07.18 |
---|---|
[JAVA][Android] 액티비티 종료 전 주요 데이터를 Bundle에 저장하여 재활용하기 (0) | 2022.06.21 |
[JAVA][Android] ProgressBar 디자인 java 코드로 변경하기 (+ 변경 시 비가시화 처리 되는 현상 해결방법) (0) | 2022.05.26 |
[JAVA][Android] ProgressBar 부드럽게 증가/감소 시키기 : ObjectAnimator 활용 (0) | 2022.05.18 |
[JAVA][Android] 로컬 파일(png, webp 등)의 Uri 추출하기 (0) | 2022.05.17 |