이클립스(4.4)에서 안드로이드 v7 Material Design 위젯을 사용해 보자.

안드로이드 롤리팝 버전은 기본 UI로 머터리얼 디자인(Material Design)이라는 멋진 디자인을 사용한다. 그리고 하위 버전도 이 UI를 적용한 위젯을 사용할 수 있도록 외부 라이브러리의 형태로 v7 라이브러리를 배포하고 있다. 하위 버전에서 머터리얼 디자인을 적용하는 많은 예제가 안드로이드 스튜디오(Android Studio)에서 Gradle 스크립트를 사용하도록 가이드를 하고 있다. 하지만 아직도 많은 개발자들의 안드로이드 개발에 이클립스(Eclipse)가 사용되고 있어서, 이클립스에서 머터리얼 디자인을 사용하는 방법을 살펴봤다.

v7 라이브러리( Support Library 일부 )에는 다음과 같은 하위 라이브러리 프로젝트들이 존재하고 있다.
+ v7 Support Libraries
– v7 appcompat library
– v7 cardview library
– v7 gridlayout library
– v7 mediarouter library
– v7 palette library
– v7 recyclerview library

이 예제에서는 v7 appcompat library만을 사용하는 예제이다.
이클립스 프로젝트에서 아래의 순서대로 진행을 한다.

1. v7 appcompat library를 추가한다.
v7 appcompat library 추가는 이클립스에서 File -> Import를 사용해서 다음과 같이 추가를 시작한다.

2. v7 appcompat library를 선택하고 추가한다.
위치는 Root Directory에 보는 것과 같은 위치에서 찾을 수 있다.

3. 위에서 추가한 라이브러리를 적용할 프로젝트의 Library로 추가한다.

3.1 선택을 완료하면 다음의 에러가 발생할 수도 있다.

[2014-11-19 09:34:24 – android-support-v7-appcompat] C:\dev\android-sdk\extras\android\support\v7\appcompat\res\values-v21\themes_base.xml:193: error: Error: No resource found that matches the given name: attr ‘android:colorControlNormal’.
[2014-11-19 09:34:24 – android-support-v7-appcompat]
[2014-11-19 09:34:24 – android-support-v7-appcompat] C:\dev\android-sdk\extras\android\support\v7\appcompat\res\values-v21\themes_base.xml:190: error: Error: No resource found that matches the given name: attr ‘android:colorPrimary’.
[2014-11-19 09:34:24 – android-support-v7-appcompat]
[2014-11-19 09:34:24 – android-support-v7-appcompat] C:\dev\android-sdk\extras\android\support\v7\appcompat\res\values-v21\themes_base.xml:191: error: Error: No resource found that matches the given name: attr ‘android:colorPrimaryDark’.

이 경우에는 안드로이드 SDK의 support 라이브러리등의 각종 개발환경을 최신버전으로 업데이트 한다. 만약, 계속 에러 상황인 경우에는 이클립스를 다시 실행시키면 된다.
그리고, android-support-v7-appcompat 라이브러리 프로젝트의 Manifest.xml 파일은 다음과 같다.

따라서 2.1 버전도 지원하는 것을 알 수 있다.

3.2 support v4 라이브러리 일치 문제가 발생할 수 있다.

[2014-11-19 09:56:33 – MaterialExample] Found 2 versions of android-support-v4.jar in the dependency list,
[2014-11-19 09:56:33 – MaterialExample] but not all the versions are identical (check is based on SHA-1 only at this time).
[2014-11-19 09:56:33 – MaterialExample] All versions of the libraries must be the same at this time.
[2014-11-19 09:56:33 – MaterialExample] Versions found are:
[2014-11-19 09:56:33 – MaterialExample] Path: C:\dev\android-sdk\extras\android\support\v7\appcompat\libs\android-support-v4.jar
[2014-11-19 09:56:33 – MaterialExample] Length: 995386
[2014-11-19 09:56:33 – MaterialExample] SHA-1: a13f8fe2c278737e2f0b6fcf00f6b2ae4034aacf
[2014-11-19 09:56:33 – MaterialExample] Path: C:\eclipse 4.4\works\MaterialExample\libs\android-support-v4.jar
[2014-11-19 09:56:33 – MaterialExample] Length: 987314
[2014-11-19 09:56:33 – MaterialExample] SHA-1: 9b6a9a9078af571732159b904ad423b03b7cc786
[2014-11-19 09:56:33 – MaterialExample] Jar mismatch! Fix your dependencies

이 경우에는 android-support-v7-appcompat 프로젝트의 /libs 폴더의 android-support-v4.jar를 프로젝트에 복사를 한다. 이제 다음과 같이 정상 화면을 볼 수 있다.

아래는 첨부파일을 실행한 예제이다.

이제 이클립스에서도 v7 패키지를 추가해서 머터리얼 디자인을 앱을 개발할 수 있다. 하지만 IDE 자체가 가지는 불편함도 있고 하니 안드로이드 스튜디오로 개발하는 것이 좋겠다.

* 예제 프로젝트 : MaterialExample.zip
이 프로젝트의 소스는 커니님의 소스를 약간 수정한 버전입니다.

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.