如何为 Android 动态壁纸创建设置活动
Posted
技术标签:
【中文标题】如何为 Android 动态壁纸创建设置活动【英文标题】:How to create a settings activity for Android Live Wallpaper 【发布时间】:2012-01-28 22:38:27 【问题描述】:如何在这样的动态壁纸中创建设置活动?
Example Picture
我只用一个简单的文本构建了设置活动,但遇到了一些问题。
第一个问题是我不能为此活动使用布局 XML 文件。
第二个:当我尝试以编程方式构建该活动时,我无法将目录设置为系统图标 (drawable/ic_menu_more
)。
我还需要使用 SeekBar。
如果你能帮助我,我会很高兴 =)
【问题讨论】:
developer.android上有一个关于这个主题的章节:developer.android.com/guide/topics/ui/settings.html 【参考方案1】:使用系统图标:
<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"/>
【讨论】:
【参考方案2】:Android 开发网站(现已缓存)上的 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)
【讨论】:
链接已失效。您介意更新答案吗?以上是关于如何为 Android 动态壁纸创建设置活动的主要内容,如果未能解决你的问题,请参考以下文章
如何检测我的动态壁纸是在预览/“设置壁纸”活动中还是在主屏幕上运行