336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

안드로이드에서 리소스(Resource)는 /res 폴더에 xml 파일로 정의하고 코드 상에서 R 클래스를 통해서 호출하여 사용한다. 


  • res/strings.xml 에 hello_world라는 리소스 이름을 정의
  • 
    
    	HELLO WORLD
    
    

  • src/MainActivity.java 에서 R 클래스에 정의된 리소스 ID를 사용
  • protected void onCreate(Bundle savedInstanceState) { String msg = getResources().getString(R.string.app_description); // 또는 String msg = getString(R.string.app_description); }


위와같이 안드로이드에서 기본적으로 제공하는 방법외에 리소스 이름 (문자열)을 가지고 리소스 ID 직접 구할 수 있다. 

  • src/MainActivity.java 에서 리소스 이름(문자열)을 이용한 리소스 ID 구하여 사용
  • protected void onCreate(Bundle savedInstanceState) {
    	String resName = "hello_world";
    	String type = "string";
    	String packageName = getPackageName();
    
    	int resId = getResources().getIdentifier(resName, type, packageName);
    
    	String msg = getResources().getString(resId);
    }
    


getIdentifier 메소드의 인자 값들은 name, type, packageName 이며, 이 값들은 아래와 같다. 

  • name 은 R.type.name에서 name 부분을 말한다. 
  • type 은 R.type.name 에서 type 부분을 말한다. 
  • packageName 은 context 객체에서 getPackageName() 메소드로 획득한 패키지명을 말한다. 


이 같은 코드는 주로 리소스 이름을 조합하여 리소스 ID 값을 획득하여 사용할 때 사용된다. 


예를 들어, 연속되는 ImageView 를 img_view_1, img_view_2, img_view_3, img_view_4 로 정의하고 ImageView에 보여질 이미지 리소스를 img_1, img_2, img_3, img_4 로 정의한다면 다음과 같이 코드를 구현할 수 있다. 

private void init() {
	int resId;
	String packageName = getPackageName();

	for (int i = 0 ; i < 4 ; i++) {
		int resId = getResources().getIdentifier("img_"+i, "drawable", packageName);
		int viewId = getResources().getIdentifier("img_view_"+i, "id", packageName);
		(findViewById(viewId)).setImageResource(resId);
	}
}