출처: http://oic.tstore.co.kr/front/community/mentoring/viewMentoring.action?seq=184
이 PreferenceActivity 에 대한 활용 방법은 많은 글들이 나와 있으나, 그대로 따라 했을 경우 검은 화면에 흰 글씨로만 표시됩니다. 그래서 원래의 앱과 디자인 컨셉이 맞지 않아 배경, 글자색, 등등 수정이 필요 한 경우가 발생하고, 선호설정 Activity 를 일반 엑티비티처럼 완전히 따로 만드는 경우도 생깁니다.
이 글에서는 PreferenceActivity 의 일반적인 사용법은 다루지 않고, 단지 PreferenceActivity 를 사용하여 설정 엑티비티를 자신이 개발한 앱에 맞게 디자인을 변경 하는 것에 대해서 얘기 할 것입니다.
1. PreferenceActivity 에 레이아웃 넣기
PreferenceActivity는 android.app.ListActivity 로 부터 상속 받은 엑티비티이기 때문에 ListActivity 를 수정하는 것과 같이 작업하면 됩니다.
먼저 PreferenceActivity 에 사용할 레이아웃을 만듭니다.
편의상 settings_layout.xml 로 이름붙였습니다.
다른 뷰위젯들을 포함시키거나, 배경색상, 크기 등을 변경 할 수 있습니다.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:background="#ffffffff"> // 타이틀바 공통으로 넣어줌 <include layout="@layout/title_bar" /> <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:cacheColorHint="#ffffffff" /> </LinearLayout> |
이제 PreferenceActivity 에서 상속받은 설정 페이지 SettingActivity 의 onCreate 를 작업 해줍니다.
public class SettingActivity extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 설정에 사용할 항목 addPreferencesFromResource(R.xml.setting); // 레이아웃을 붙여 줍니다. setContentView(R.layout.setting_layout); } } |
단순히 배경 색상만 변경 한다면 레이아웃까지 필요 없고 아래와 같이 할수도 있습니다.
findViewById(android.R.id.list).setBackgroundColor(Color.WHITE); |
2. 텍스트 색상 변경
다음으로 선호설정에 나오는 텍스트 색상은 아래와 같이 변경 할 수 있습니다.
새로운 스타일을 만듭니다. textColor에 원하는 색상을 넣습니다.
새로운 스타일을 만듭니다. textColor에 원하는 색상을 넣습니다.
<style name="SettingsTheme" parent="android:Theme.Light"> <!-- Override properties according to your need --> <item name="android:textColor">#444444</item> </style> |
<activity android:name=".SettingActivity" android:screenOrientation="portrait" android:configChanges="orientation|keyboard" android:theme="@style/SettingsTheme"/> |
'IT_Programming > Android_Java' 카테고리의 다른 글
[펌] Contentprovider 사용시 주의 사항 및 Thread safety (0) | 2012.10.05 |
---|---|
[펌] SparseArray 기능 소개 (HashMap 대용) (0) | 2012.10.05 |
[펌] Bitmap 생성 없이도 Bitmap 크기 정보를 구하는 방법 (0) | 2012.10.05 |
TypeViewManager (0) | 2012.06.20 |
[Android/안드로이드] Service 고급정보. (0) | 2012.05.22 |