안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요, 현재 GUI업무를 맡고있습니다.
제가 여지껐 Feature폰 중심으로 절대좌표의 GUI가이드및 소스로 작업해왔고 경력이 짧기때문에
상대좌표의 가이드 작업 방식을 잘 모릅니다.
안드로이드 GUI가이드는 상대좌표로 개발이 되어 하나의 가이드로 어느 해상도에나 다 쓰인다고 들었습니다.
그 방식이 나인패치라고 해서 그 개념은 게시글을 통에 이해 했으나, 구체적으로 적용하는 방법에 대해서 문의 드립니다.
1.나인패치되는 이미지를 GUI가이드에 적용하는 방법및 이미지 저장룰
(예를들어 라운드진 이미지를 PNG저장할때 몇조각의 이미지로 저장이 되어야 하는지..)
2.GUI가이드에 상대값으로 이미지위치를 표기 하는 방식
각 업체마다 GUI가이드를 내는 방법은 다르겠지만
개발하시는분들이 작업하시기에 편하고, 효율적인 업무처리가 되는 안드로이드 GUI가이드 일반적인 룰에 관한 질문을 던집니다.
감사합니다.
2010.06.11 12:05:04
UI 가이드라인에 대해서는 아래의 글들을 읽어 보시기 바랍니다.
http://developer.android.com/guide/practices/ui_guidelines/index.html나인패치드로우블 이미지라는것은 쉽게 웹개발로 비교해 드리자면 웹에서 각 4개의 모서리 이미지가 고정되고 가로 혹은 세로 혹은 가로세로의 가변 길이를 가지는 어떤 형태를 표시하려면 그 이미지는 각 코너마다 이미지파일로 4조각이 나오며 가로 세로 그리고 가운데의 이미지를 타일배경화 시켜서 가변적인 형태의 그림을 그리곤 했는데요 이걸 png 파일 하나로 만들면서 상하좌우 캔버스를 1픽셀식 확장하여 늘어날 가변영역을 1픽셀 검정색 점으로 표시 해주는 방식입니다.
아래그림이 나인패치 도구를 이용하여 그리는 모습이며 오른쪽의 이미지 3개가 늘어난 샘플입니다.
오른쪽 캡춰 화면을 보면 4귀퉁이 코너가 크기 고정이 되며 연두색 영역이 상하 좌우로 늘어납니다.
2010.06.12 07:01:44
위의 설명에 덧붙이자면, 상단과 좌측 1픽셀 영역에 칠해진 검은 색은 늘어나는 영역에 대한 지정이지만, 우측과 하단 1픽셀 영역에 칠해진 검은색은 패딩에 대한 처리가 됩니다. 안드로이드의 나인패치는 주로 백그라운드 이미지(드로어블)로 대부분 사용되는데, 실제 그 백그라운드 위에 뭔가 내용이 올라가게 되면, 우측과 하단의 검은색이 칠해지지 않은 부분은 마치 패딩처럼 동작하게 된다는 것입니다.
실제로 위 댓글의 이미지가 버튼의 백그라운드로 사용된다고 친다면, 우측과 하단의 검은색이 칠해진 부분에만 글자가 표시되게 되는 것이죠.
그리고, 나인패치는 이미 완성된 이미지의 가장자리 1픽셀에 검은색을 칠하는 것이 아니고, 1픽셀을 확장한 후에, 검은색을 칠해야하기 때문에, 그 1픽셀의 영역에 검은색(#000000) 이외에 다른 색이 존재한다면 오류가 발생되며, 안드로이드의 R.java가 생성되지 않습니다. 제가 이거 때문에 삽질 많이 했습니다.
그리고 나인패치 이미지는 *.9.png 라는 파일명 규칙을 따라주어야만 작동되며, 일반적으로 백그라운드가 아닌 곳에서의 사용은 나인패치 효과가 적용되지 않습니다. 물론 방법은 있을 겁니다만...