안드로이드 개발 팁 #26 - 레이아웃 XML 파일에 이모지 문자 넣는 방법
어제 스팀 앱 개발기를 작성하면서 만나게 된 예상치 못한 고비가 있었습니다. 그것은 바로 레이아웃 XML 파일의 텍스트 뷰에 이모지를 텍스트로 넣는 것이었습니다. text 속성에 🔺를 바로 넣으면 될 줄 알았죠. 프리뷰에서는 아무 문제 없이 잘 보였으니까요. 그런데 말입니다... 실행 결과, 글자가 깨져서 나오는 것이 문제였습니다. 🔺를 text 속성에 바로 넣으면 안 되는 것입니다. 그러면 어떻게 해야 하는 것일까요?
해결 방법
이모지 🔺를 직접 넣는 대신, 유니코드 \uD83D\uDD3A를 대신 넣는 것으로 이 문제는 해결 되었습니다. 예를 들면요. TextView 뷰에 이 이모지만 text 속성 값으로 설정해 보겠습니다.
android:text="🔺"
위와 같이 text를 설정하면, 실행 화면에서 글자가 깨집니다. 그 대신 아래와 같이 이 속성을 설정해야 이모지가 정상적으로 보입니다.
android:text="\uD83D\uDD3A"
문제 - 그렇다면 다른 이모지는?
사용할 수 있는 이모지는 여러 가지가 있습니다. 이들의 유니코드는 어디서 찾을 수 있을까요?
이모지와 유니코드 찾기
아래 웹페이지에서 이모지 조회하고 유니코드를 찾을 수 있습니다.
https://charbase.com/block/miscellaneous-symbols-and-pictographs
위 페이지에서 원하는 이모지를 찾으시구요. 좌측의 인덱스 번호(예: U+1F53A)를 클릭하세요. 그러면 아래 스크린샷과 같이 이모지 관련 정보를 볼 수 있구요. 유니코드 또한 있습니다. Java Escape 값을 복사하여 레이아웃 XML의 TextView 뷰에 적용하면 됩니다. 유니코드에서 "\u"를 제외하고 알파벳 대소문자는 상관없습니다.
지난 안드로이드 개발 팁
- #25 - TED permission 라이브러리를 활용한 권한 요청
- #24 - EditText 뷰에 텍스트 입력하고 0.5초 후 액션 설정
- #23 - Uri 객체로부터 읽은 파라메터에서 '+' 문자가 ' '로 바뀌어 있는 문제
- #22 - RxJava 활용하여 몇초 후 코드 실행
- #21 - 맥북 아이클라우드로 프로젝트 복사 후 빌드 안 되는 문제
- #20 - 툴바 정의 방법 (1) 타이틀 및 배경색 설정
- #19 - Index corrupted 오류
- #18 - 오래된 프로젝트의 build.gradle 파일 수정
- #17 - 뷰 바인딩 적용된 프래그먼트에 데이터 바인딩 적용 후 빌드시 발생하는 오류
- #16 - 특정 일이 속하는 주의 모든 날짜를 배열로 구하는 방법
- #15 - RecyclerView에 리스트를 로딩한 후 처리할 일 작성
- #14 - RecyclerView 뷰에서 항목 클릭시 뷰가 깜빡이는 문제
- #13 - 공통으로 사용할 색상 리소스 만들고 뷰에 적용
- #12 - 코틀린 언어 변환시 추가로 수정할 build.gradle 파일들
- #11 - 리스트/배열로부터 찾을 원소의 위치 읽기
- #10 - 앱의 다크 모드 진입 막는 방법
- #9 - 데이터 바인딩/뷰 바인딩 사용하지 않을 경우 자체적으로 만드는 Views 클래스
- #8 - TextView에 linear gradient color 적용하기
- #7 - 다이얼 화면 연결하기 위해 Activity 클래스의 확장 메소드 작성
- #6 - 웹 브라우저를 여는 확장 메소드 작성
- #5 - HTML 적용된 TextView에서 링크 클릭은 어떻게 구현?
- #4 - RxJava의 Observable, Single 객체의 기본 설정 수행 메소드 정의하기
- #3 - 특정 화면 이동시 다른 화면 모두 닫기
- #2 - HTML 이스케이핑 적용된 문자 풀어주기
- #1 - TextView로 HTML 내용 보여주기
Posted through the AVLE Dapp (https://avle.io)
[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.
Upvoted! Thank you for supporting witness @jswit.