티스토리 뷰


안드로이드에서 이모티콘 키보드를 개발하기 위해서는 어떻게 해야할까요?

이것은 이모티콘 키보드뿐만아니라, 요즘 흔히 볼 수있는 키보드와 동일한 크기의 레이아웃이라고 보면 좋습니다.

라인 어플리케이션을 예를 들어서 어떤것인지 살펴보죠.

보시면 키보드가 들어가는 위치에 스탬프 레이아웃이 들어간것 볼수있습니다.

이것은 커스텀 키보드는 아닙니다.

키보드와 동일한 크기의 레이아웃을 만들어서 ViewPager을 넣고 키보드 위에 해당 레이아웃을 최상위 뷰로 표시하는것이죠.


키보드와 동일한 크기의 레이아웃을 만들기 위해서는 각각 단말기 마다 다른 키보드의 사이즈를 구해야만 합니다.

하지만 한가지 안타까운 사실은 안드로이드에서는 키보드의 크기를 제공해주는 api가 없다는것이죠.

그렇다면 우리는 어떻게 키보드의 크기를 구할 수 있을까요?

우리는 OnGlobalLayoutListener를 이용해야 합니다.

액티비티에서의 android:windowSoftInputMode 속성을 "adjustResize" 으로 설정할 경우

키보드가 등장할때 액티비티에서 표현되고 있는 뷰의 크기가 키보드 만큼 줄어들게 됩니다.

밀려서 올라가게되죠. 이때 OnGlobalLayoutListener를 이용한다면 줄어든 뷰의 크기를 구할 수가 있습니다.

그 크기가 바로 키보드의 크기가 되는거죠!

크기보드의 크기를 구할 수 있는 소스코드는

http://maumqmaum.tistory.com/admin/entry/post/?id=2

 위 링크에 자세하게 포스팅해두었으니, 참고하시길 바랍니다!


이렇게 키보드의 크기를 구함으로써 우리는 키보드와 동일한 크기의 레이아웃을 동적으로 생성할 수 있게되었습니다.

이렇게 동적으로 만든 레이아웃을 이제 뷰의 최하단에 위치시켜주면 됩니다.

보통 이모티콘 키보드의 경우 소프트 키보드가 표시되어있을때에는 이모티콘 키보드가 소프트 키보드 위에 겹쳐지는 형태로 표시되게 되는데

키보드 위에 뷰를 얹기 위해서는 최상위 뷰로 레이아웃을 설정해주지 않으면 안됩니다.

이것을 가장 쉽게 구현할 수 있는 방법은  PopupWindow를 사용하는 것입니다.

PopupWindow를 키보드와 동일한 크기로 생성한 후에 뷰의 최하단에 위치시킨다면 키보드위에 얹어지는 형태로 구현이 가능합니다.


사실 이모티콘 키보드같은 경우 이렇게 레이아웃을 만들어서 키보드위에 얹는 작업이 끝난다면 거의 끝입니다.

해당 레이아웃안에 각각의 그리드뷰를 갖는 뷰페이저를 넣어주면 끝이기 때문이죠.

이모티콘 키보드의 소스코드는 아직 정리하지 않았습니다.

이상으로 안드로이드에서 이모티콘 키보드를 개발하는 방법이였습니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함