如何为Android动态壁纸创建设置活动

10

如何创建一个类似于这样的动态壁纸设置活动?

示例图片

我已经建立了一个只包含简单文本的设置活动并遇到了一些问题。 第一个问题是我无法为此活动使用布局XML文件。 第二个问题是当我尝试以编程方式构建该活动时,我无法将目录设置为系统图标 (drawable/ic_menu_more)。 另外,我需要使用SeekBar。

如果您能帮助我,我将非常高兴 =)


1
在developer.android上有一个关于这个主题的章节:http://developer.android.com/guide/topics/ui/settings.html - Warpzit
2个回答

9

使用系统图标:

<service android:name="com.livewallpaper.warm.LiveWallpaper"
            android:label="@string/app_name"
            android:icon="@drawable/ic_menu_more">

            <intent-filter>
                <action android:name="android.service.wallpaper.WallpaperService" />
            </intent-filter>
            <meta-data android:name="android.service.wallpaper"
                android:resource="@xml/livewallpaper" />

        </service>

在 XML-livewallpaper.xml 文件中:
<?xml version="1.0" encoding="utf-8"?>
<wallpaper xmlns:android="http://schemas.android.com/apk/res/android"
    android:settingsActivity="com.livewallpaper.warm.LiveWallpaperSettings"
    android:thumbnail="@drawable/ic_menu_more"/>

1

Android Dev网站上的LiveWallpaper示例(现在已缓存)正好涵盖了这个问题:
http://web.archive.org/web/20111229075658/http://developer.android.com/resources/samples/CubeLiveWallpaper/index.html

更具体地说:
http://web.archive.org/web/20120104043512/http://developer.android.com/resources/samples/CubeLiveWallpaper/src/com/example/android/livecubes/cube2/CubeWallpaper2Settings.html

简而言之:

public class CubeWallpaper2Settings extends PreferenceActivity
implements SharedPreferences.OnSharedPreferenceChangeListener {

@Override
protected void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    getPreferenceManager().setSharedPreferencesName(
            CubeWallpaper2.SHARED_PREFS_NAME);
    addPreferencesFromResource(R.xml.cube2_settings);
    getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(
            this);
}

@Override
protected void onResume() {
    super.onResume();
}

@Override
protected void onDestroy() {
    getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(
            this);
    super.onDestroy();
}

public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
        String key) {
}
}

链接已经失效了。您介意更新一下答案吗? - Phani Rithvij

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接