본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Android/안드로이드] Manifest 속성 icon에 대해 정복해보자.

by 돼지왕 왕돼지 2012. 2. 1.
반응형

안녕하세요 돼지왕왕돼지입니다.
요번에 살펴 볼 attribute 는 매우매우 친숙한, icon = "drawable resource" 라는 attribute 입니다.


Developer에서는 뭐라고 하는지 먼저 살펴볼까요?

- 해당 activity 를 대표하는 icon 으로 label attribute 와 함께 표시됩니다.
 
- application 의 icon 을 상속합니다.

icon 의 value 로 들어가는 "drawable resource" 는 다음과 같은 형식으로 연결됩니다.
@drawable/icon파일이름   ( 이 때 icon파일이름은 확장자를 붙이지 않습니다. )
물론 이 icon파일은 res/drawable 에 들어 있어야 겠죠??



이 attribute 는 너무 쉬워서 posting 안 할가 고민하다 썼습니다. 

왜?? 헷갈리는게 있기 때문이죠.. 

application 에도 icon 과 label 이 있고, activity 에도 icon 과 label 이 있는데
이놈들의 관계는 어떻게 될까요??

developer 에 나와있듯이 상속을 기본으로 하게 된다는 것과 Android의 All-apps 와 Launcher 가 label 과 icon 을 어떤 식으로 참조하여 표시하는지를 알게 되면
확실히 구분이 가능합니다.

먼저!!! 
Launcher 와 All-apps 는 action 이름이 MAIN 으로 표시된 activity 를 기준으로 icon 을 표시합니다.
( 정확하게는 android.intent.action.MAIN )
즉 한 application이 MAIN 을 action 이름으로 갖는 activity 를 여러개 갖고 있다면, All-apps 에 여러개의 activity 가 표시되는 것이죠. 한 어플에 대해서..

또한, developer 에 나온것처럼 application 의 값을 상속하기 때문에 MAIN activity 의 label 이나 icon 값이 없다면
application 에서 define 된 녀석들을 사용하게 됩니다.

자 그럼 default 값은 어떻게 될까요??
 icon 의 경우는 개발자라면 수도 없이 보셨을.. 요 아이콘입니다.


 

 label 의 경우는 package name 이 사용되더군요 호오~


그럼 MAIN 이 아닌 activity 들은 label과 icon 이 어떻게 작용할까요?
진저브레드까지는 icon 에 대해서 ignore 됩니다.
label 의 경우는 해당 activity 가 실행될 때 title 부분에 나오기 때문에 지정해주는 것이 좋습니다. ( 표시하고 싶다면 )
( Tablet ( HoneyComb 나 ICS ) 에서는 icon 까지 표시할련지는 모르겠습니다만,, 화면이 작은 Ginger 까지는 무시됩니다. )


<application> 의 icon 과 label 값은 추가적 기능이 있습니다.
기본적으로 자식이 값을 안 가지고 있을 때 상속해주는 기능도 있지만.. 
[Setting] -> [Application] -> [Manage application] 에 가면 App의 정보를 application 의 속성 ( icon과 label )만을 이용해서 표시해줍니다.
추가적으로 PackageManager를 통해 application 값을 가져오면 당연히 이 값들이 access 되겠죠??



그럼 모두들 확실히 이해하시기 바라며~
 
 
로그인 없이도 추천 가능합니다. 손가락을 꾸욱~ 눌러주세요
반응형

댓글