본문 바로가기
공부하는 하스씨/안드로이드

안드로이드 스킨 편집 방법

by 박하스. 2009. 8. 6.
728x90
반응형

예전 안드로이드 에뮬레이터용 태연 스킨 제작하면서 얻은 Know-how(?) 공유합니다.
설명 역시 태연 스킨을 기준으로 합니다.

스킨의 폴더 구조
먼저 스킨은 한 폴더에 모두 들어가고, 다수의 png 이미지 와 하나의 layout 텍스트 로 구성됩니다.

png 이미지는 물론, 스킨 화면을 구성하는 요소들로서 투명색을 지원합니다.

layout 텍스트는 위에 언급한 png 파일들을 조립하는 것을 명기합니다.


layout 전체 구조
layout 은 {} 계층적으로 묶이는 다중 블럭 구조입니다.
가로보기와 세로보기를 모두 지원하는 스킨에서 layout 에는
크게 parts, layouts, keyboard, network 항목이 들어 있습니다.
이 중, keyboard, network 항목은 스킨의 형태를 정의하는 것이 아니라 설정값을 가집니다.

keyboard {
    charmap qwerty2
}

network {
    speed  full
    delay  none
}

적힌 그대로, QWERTY2 문자map 을 사용하는 키보드, 딜레이 없이 원래 속도를 모두 사용하는 네트워크를 정의하고 있습니다.

나머지 두 항목이 화면에 보여지는 스킨의 형태를 정의합니다.

parts
parts 항목은 화면을 구성할 구성물을 부품의 개념으로 각각 정의합니다.
태연 스킨에서는 Wallpaper (배경 이미지), Device(안드로이드 장치), Keyboard(스킨에 보여진 키보드) 가 있습니다.
각 부품의 정의에서 사용할수 있는 항목은 background, buttons 가 있습니다. Device 부품의 경우 화면이 표시될 display 항목이 존재합니다.

각 항목에는 몇가지 Property 가 있습니다.
background - image 에 png 이미지 이름을 적으면 해당 part의 배경으로 표시됩니다.

buttons - 스킨에서 마우스 클릭이 가능한 부분을 정의합니다.
반환 값 {
image -> Mouse Over 시에 표시될 png 이미지 이름
x -> 정수값
y -> 정수값
}
형태로 다수를 정의할 수 있습니다. x, y 좌표는 해당 part 영역의 좌상단을 0,0 으로 하는 상대 좌표입니다.

display - 스킨에서 화면이 표시될 영역으로  디스플레이의 해상도를 width, height 항목으로 입력하고,
디스플레이 영역의 시작 위치 를 x, y 항목으로 입력합니다. buttons에서와 같은 상대좌표입니다.


layouts
화명상에 Part들을 배치하는 것을 정의합니다.
가로보기용의 landscape 항목과 세로보기용의 portrait 항목을 대칭적으로 정의하고 있습니다.
각 항목에서 직접적으로 정의되는 Property는 width, height, color, event 입니다.
widthheight 는 스킨의 크기를 의미하고
color 는 배경 컬러
event 는 해당 layout이 사용되는 이벤트에 대한 필터(?) 정도로 추정됩니다.

그리고 part0, part1 순으로 숫자를 붙이며 선언된 part 를 정의합니다.
사용되는 property는 name, x, y, rotation 이 있습니다.
name 은 선언한 part의 이름
x, y 는 전체 스킨에서 해당 part가 위치할 시작좌표 (좌상단을 0,0 으로 합니다.)
rotations 은 1, 2, 3, 4 중의 하나다.
위에서 정의한 x,y 좌표와 해당 Part의 기준좌표 0,0 을 매치시키면 Pivot 형태로 4가지 정렬이 가능하다.
x,y 좌표를 기준으로
좌하단을 향해서 그려지는 것이 1
좌상단을 향해서 그려지는 것이 2
우상단을 향해서 그려지는 것이 3
우하단을 향해서 그려지는 것이 4 - 별도로 정의하지 않았을때의 기본값


layout 파일 구조는 여기까지입니다..

안드로이드 SDK에 기본으로 포함된 SKIN 내부를 뜯어서 역공학 개념으로 파악한 사항들이라서 오류가 있을 수 있습니다.
위 사항들의 조합으로 안드로이드 스킨을 마음대로 꾸밀 수 있습니다.
728x90
반응형