안드로이드 스타일과 테마 적용하기

프로그래밍/Android 2013. 8. 25. 22:44

안드로이드 스타일과 테마 적용하기


스타일과 테마 적용하기

- 스타일 : 하나의 엘리멘트 단위로 적용할 수 있는 하나 또는 그 이상의 포맷팅 애트리뷰트의 집합

- 테마 : 액티비티 단위로 적용할 수 있는 하나 또는 그 이상의 포맷팅 애트리뷰트의 집합


1. res/value/styles.xml

<?xml version=”1.0” encoding=”utf-8”?>

<resources>

<style name="SpecialText" parent="@style/Text">

<item name="android:textSize">18sp</item>

<item name="android:textColor">#008</item>

</style>

</resources>


prarent 속성 

- 어떤 스타일로부터 상속을 받을 것인지를 지정


2. 스타일 적용하기

<EditText id="@+id/text1" style="@style/SpecialText"

android:layout_width=”fill_parent”

android:layout_height=”wrap_content”

android:text=”Hello, World!” />



Theme 선언

<?xml version=”1.0” encoding=”utf-8”?>

<resources>

<style name="CustomTheme">

<item name="android:windowNoTitle">true</item>

<item name="windowFrame">@drawable/screen_frame</item>

<item name="windowBackground">@drawable/screen_background_white</item>

<item name="panelForegroundColor">#FF000000</item>

<item name="panelTextColor">?panelForegroundColor</item>

<item name="panelTextSize">14</item>

<item name="menuItemTextColor">?panelTextColor</item>

<item name="menuItemTextSize">?panelTextSize</item>

</style>

</resources>



매니페스트에서 테마 설정

AndroidManifest.xml 파일내에서 설정

<application android:theme="@style/CustomTheme">


하나의 Activity 에만 테마를 적용할 경우

activity 에 built-in 테마 적용시

<activity android:theme="@android:style/Theme.Dialog">


Custom Theme 상속

<style name="CustomDialogTheme" parent="@android:style/Theme.Dialog">



어댑터뷰를 사용한 데이터 바인딩

- 레이아웃을 데이터로 채움

- 사용자가 선택한 것을 처리


Spinner s1 = (Spinner)findViewById( R.id.spinner1);

ArrayAdapter adapter = ArrayAdapter.createFromResource( 

this, 

R.array.colors, 

android.R.layout.simple_spinner_item

);

adapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item);

s1.setAdapter( adapter);


private static String[] PROJECTION = new String[]{

People._ID, People.NAME

};


Spinner s2 = (Spinner)findViewById(R.id.spinner2);

Cursor cur = mangedQuery( People.CONTENT_URI, PROJECTION, null, null);


SimpleCursorAdapter adapter2 = new SimpleCursorAdapter(

this,

android.R.layout.simple_spinner_item,

cur,

new String[] { People.NAME },

new int[] { android.R.id.text1 }

);


adapter2.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item);

s2.setAdapter(adapter2);



사용자가 선택한 것을 처리하는 방법

// 사용자 클릭이벤트를 처리할 객체를 생성한다.

pirvate OnItemClickListener mMessageClickedHandler = new OnItemClickListener(){

public void onItemClick( AdapterView parent, View v, int position, long id){

// Display a messagebox

Toast.makeText( mContext, "You've got an event", Toast.LENGTH_SHORT).show();

}

};


// 위에서 정의한 핸들러를 View 에 설정한다.

mHistoryView = (ListView)findViewById( R.id.history);

mHistoryView.setOnItemClickListener(mMessageClickedHandler);


'프로그래밍 > Android' 카테고리의 다른 글

안드로이드 리소스와 에셋  (0) 2013.08.26
안드로이드 레이아웃  (0) 2013.08.25
안드로이드 노티피케이션  (0) 2013.08.25
Android 커스텀 다이얼로그 생성  (0) 2013.08.23
Android UI 메뉴 생성  (0) 2013.08.23
: