如何在普通应用程序中添加动态壁纸Android中的应用程序图标

时间:2012-05-10 17:51:09

标签: android icons live wallpaper

是否可以添加应用图标,就像它在Live Aquarium Wallpaper中所显示的那样(https://play.google.com/store/apps/details?id=fishnoodle.aquarium_free&feature=search_result#?t=W251bGwsMSwxLDEsImZpc2hub29kbGUuYXF1YXJpdW1fZnJlZSJd ) 当我安装此壁纸时,它会显示和图标,当点击它时会打开设置页面。有没有人这样做过?

3 个答案:

答案 0 :(得分:3)

首先,您应该创建Activity

public class SetLiveWallpaperActivity extends Activity{

@Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Intent intent = new Intent();
    if(Build.VERSION.SDK_INT >= 16)
    {
        intent.setAction(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);
        intent.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, new ComponentName(this, LibGDXWallpaperService.class));
    }
    else
    {
        intent.setAction(WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER);
    }
    startActivity(intent);
    finish();
  } 
}

然后在AndroidManifest.xml中添加以下代码:

 <activity
        android:name=".SetLiveWallpaperActivity"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Light.WallpaperSettings" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />               
        </intent-filter>           
 </activity>

它会创建一个图标,单击它时会打开设置页面。 希望它能帮助你或其他人。

答案 1 :(得分:2)

您需要使用默认intent-filterAndroidManifest.xml中声明一项活动:

    <activity
        android:name="com.your.company.ui.SettingsActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

答案 2 :(得分:0)

对于那些仍在寻找正确答案的人:

您需要在清单文件中的Wallpaper Service标记声明中声明<meta-data>标记:

    <service
        android:name=".MyWallpaperService"
        android:enabled="true"
        android:label="My Wallpaper"
        android:permission="android.permission.BIND_WALLPAPER" >
        <intent-filter>
            <action android:name="android.service.wallpaper.WallpaperService"/>
        </intent-filter>

        <meta-data
            android:name="android.service.wallpaper"
            android:resource="@xml/wallpaper" >
        </meta-data>

    </service>

此标记指向xml文件,其中包含有关壁纸图标的信息,该图标显示在动态壁纸部分中:

<?xml version="1.0" encoding="UTF-8"?>
<wallpaper
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:label="GIF Wallpaper"
    android:thumbnail="@android:drawable/btn_star">
</wallpaper>

因此android:thumbnail是您为图标

设置资源的地方