|
|
option.xml
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<EditTextPreference
android:key="et_name"
android:title="이름"
/>
<CheckBoxPreference
android:key="cb_draw"
android:title="Drawing?"
android:summary="이미지 보기"
android:defaultValue="true"
/>
<PreferenceCategory
android:title="카테고리">
<PreferenceScreen
android:key="fluit"
android:title="과일">
<CheckBoxPreference
android:key="fluit_01"
android:title="사과"/>
<CheckBoxPreference
android:key="fluit_02"
android:title="배"/>
<CheckBoxPreference
android:key="fluit_03"
android:title="포도"/>
</PreferenceScreen>
</PreferenceCategory>
</PreferenceScreen>
레이아웃은 PrefenceScreen으로 해야하며 위 코드는 EditText, CheckBox, Category가 들어있다.
기본적으로 key, title, summary의 값을 지닌다.
레이아웃은 PrefenceScreen으로 해야하며 위 코드는 EditText, CheckBox, Category가 들어있다.
기본적으로 key, title, summary의 값을 지닌다.
LiveWallPaPer_Canvas.java
package pe.berabue.livewallpaper;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.EditTextPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.Preference.OnPreferenceClickListener;
import android.util.Log;
public class LiveWallPaPer_Canvas extends PreferenceActivity implements OnPreferenceClickListener, OnPreferenceChangeListener {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.layout.option);
EditTextPreference editName = (EditTextPreference)findPreference("et_name");
CheckBoxPreference checkDraw = (CheckBoxPreference)findPreference("cb_draw");
editName.setOnPreferenceChangeListener(this);
checkDraw.setOnPreferenceClickListener(this);
// fluit category
CheckBoxPreference checkFluit_01 = (CheckBoxPreference)findPreference("fluit_01");
checkFluit_01.setOnPreferenceClickListener(this);
}
@Override
public boolean onPreferenceClick(Preference preference) {
if ( preference.getKey().equals("cb_draw")) {
boolean isDraw = preference.getSharedPreferences().getBoolean("cb_draw", false);
Log.v(null,"Click CheckPreference : "+isDraw);
WallPaPer_Canvas.isDraw = isDraw;
}
if ( preference.getKey().equals("fluit_01") ) {
Log.v(null,"Click fluit_01");
}
return false;
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if ( preference.getKey().equals("et_name") ) {
preference.setSummary((CharSequence) newValue);
Log.v(null,""+newValue);
}
return false;
}
}
PreferenceActivity를 상속받는다.addPreferencesFromResource(R.layout.option);
먼저 작성해둔 option.xml 을 불러들인다.
xml파일에서 작성해둔 key값으로 리스너를 등록시킨다.
WallPaPer_Canvas.java 의 그림을 그려주는 부분에 isDraw를 추가시켜 놓았는데 Drawing?이 체크되면 이미지를 보이고 체크가 해제되면 이미지를 보여주지 않도록 바꾸어 놓았다.
WallPaPer_Canvas.jaca -> DrawFrame();
if (canvas != null) {
if ( isDraw )
canvas.drawBitmap(imgIcon, 0, 0, null);
}
ex.xml
<?xml version="1.0" encoding="UTF-8"?> <wallpaper xmlns:android="http://schemas.android.com/apk/res/android" android:thumbnail="@drawable/icon" android:description="@string/test" android:settingsActivity="pe.berabue.livewallpaper.LiveWallPaPer_Canvas"/>
ex.xml 파일내의 settingsActivity 옵션에 "패키지명.액티비티명"을 입력 시키면 완성 ~
|
|
'Android > Live WallPaper' 카테고리의 다른 글
| [ Live WallPaper - 02 ] 이미지 띄우기 (9) | 2011.06.10 |
|---|---|
| [ Live Wallpaper - 01 ] 기본 구조 (0) | 2011.06.10 |