본문 바로가기

안드로이드/러닝패스

[#A1 DEPRECATED] 내 앱에 원형 프로필 사진 위젯을 추가하는 가장 손쉬운 방법

여러분들은 다양한 SNS에서 자신의 프로필 이미지가 원형으로 표시되는 것을 본 경험이 있을 것입니다. 기본적으로 이 포스트에서는 RoundImageView.java 라는 클래스를 이용해서 간단히 구현해보겠습니다.


1. RoundImageView.java 클래스를 패키지에 추가하기


RoundImageView.java는 기본적으로 이미지뷰를 변형시킨 클래스입니다. 따라서 간단하게 레이아웃에 추가하고, 손쉽게 BITMAP을 추가할 수 있습니다.

이 클래스를 MainActivty.java가 포함된 폴더에 추가합니다.


( 속성에 관한 설명은 링크 페이지에 포함되어 있습니다 )


2. RoundImageView.java 클래스를 레이아웃에 추가하기.


com.myPackage 부분은 자신의 패키지 이름으로 대체합니다. 이는 AndroidManifest.xml의 package="com.xxx.xxx.xxx" 에서 확인할 수 있습니다.


1
2
3
4
5
<com.myPackage.RoundImageView
    android:id="@+id/round_profile_image"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@null" />
cs


3. 이미지 불러오기


RoundImageView 에서 불러올 수 있는 이미지는 Bitmap 형식입니다. 따라서 해당 메소드로 쉽게 이미지를 불러올 수 있습니다.


findViewById(R.id.round_profile_image).setImageBitmap(bitmap)


BITMAP은 SNS 로그인 계정의 경우 URL에서 얻을 수 있고 ( URL to BITAMP 메소드 ) 사용자가 카메라에서 촬영 혹은 앨범에서 선택한 사진에서도 얻을 수 있습니다.


카메라 또는 앨범에서 BITMAP 가져오기



4. TIP - 가져온 BITMAP 이미지를 저장하는 방법


이 단계에서는 적절한 BITMAP을 소유하고 있다고 가정하고 진행합니다.


사용자로부터 가져온 데이터를 저장할 수 있는 방법은 외, 내부 DB 혹은 SharedPreference를 사용하는 세 가지가 존재합니다.


선행지식 : SharedPreference



여기서는 SharedPreference를 이용한 저장 방법에 대해서만 다루겠습니다.

SharedPreference에 BITMAP을 저장하기 위해서는 이 데이터를 String 형태로 가공해야합니다.


기본적인 구조는 이렇습니다.


(저장) Bitmap -> String - > SharedPreference

(로드)  SharedPreference - > String -> Bitmap


이 과정은 Bitmap을 String으로 바꿔주는 메소드와, 그 반대의 메소드로 쉽게 달성할 수 있는 아주 간단한 과정입니다.


Bitmap을 String으로


String을 Bitmap으로


이후의 과정은 SharedPreference 사용법을 참고하시면 되겠습니다.