我想要做的是动态壁纸有一些动作(已经完成)但是问题就在那里......我在Activity中做了哪个“动作”是一个扩展视图和活动的类setContentView()
方法不是一些布局..这是View
。我现在要做的是创建选项将该活动设置为壁纸,但我不知道如何。这是来自主Activity的onCreate()
方法,它正在加载View
。我希望它成为一个壁纸......那么如何才能将它设置为一个?
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SnowFall snowFallView = new SnowFall(this);
setContentView(snowFallView);
snowFallView.setBackgroundDrawable(getResources().getDrawable(
R.drawable.christmas));
}
以下是我要创建的示例应用:https://play.google.com/store/apps/details?id=com.chiralcode.wallpaper.autumn&hl=bg
答案 0 :(得分:4)
您是否将壁纸作为服务实施?获取基础知识 - 查看Lars Vogel关于动态壁纸here
的教程简而言之,您可以设置壁纸:
Intent intent = new Intent(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);
intent.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, new ComponentName(this, MyWallpaperService.class));
startActivity(intent);
您需要将上述内容改编为您的类名,并记住在AndroidManifest中拥有android.permission.BIND_WALLPAPER权限,但请再次阅读他的教程。
答案 1 :(得分:1)
通过活动开始壁纸服务,以下是完美的工作,你也可以在 onclick(...)中加入,如果你启动livewallpaper(你自己的直播壁纸只需点击一下你只需编写以下代码,
btnInstallWallpaper.setOnClickListener(new OnClickListener() {
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@SuppressLint("InlinedApi")
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
if (android.os.Build.VERSION.SDK_INT >= 16)
{
intent.setAction("android.service.wallpaper.CHANGE_LIVE_WALLPAPER");
intent.putExtra("android.service.wallpaper.extra.LIVE_WALLPAPER_COMPONENT", new ComponentName("com.example.wall", "com.example.wall.WallpaperService"));
} else
intent.setAction("android.service.wallpaper.LIVE_WALLPAPER_CHOOSER");
intent.putExtra("android.service.wallpaper.extra.LIVE_WALLPAPER_COMPONENT", new ComponentName("com.example.wall", "com.example.wall.WallpaperService")); // package + classname
//}
startActivity(intent);
}
});