我想使用 LibGDx
制作 Android
动态壁纸。我按照 this github link 中的说明创建了项目
但是 Eclipse
显示错误:
“MainActivity
类型的方法 createListener()
必须覆盖或实现父类(super class)型方法”
“MainActivity
类型的方法 createConfig()
必须覆盖或实现父类(super class)型方法”
并提供删除 @Override
注释。我的错误在哪里?
我的代码:
public class MainActivity extends AndroidLiveWallpaperService {
@Override
public ApplicationListener createListener() {
return new Wallpaper();
}
@Override
public AndroidApplicationConfiguration createConfig () {
return new AndroidApplicationConfiguration();
}
@Override
public void offsetChange (ApplicationListener listener, float xOffset, float yOffset, float xOffsetStep, float yOffsetStep,
int xPixelOffset, int yPixelOffset) {
Gdx.app.log("LiveWallpaper", "offset changed: " + xOffset + ", " + yOffset);
}
最佳答案
关于 LiveWallpapers 的 wiki 似乎已经过时了 o.o(我会检查一下)。这是我的做法:
MainActivity.java
package com.zoryth.blockslw;
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
import com.badlogic.gdx.backends.android.AndroidLiveWallpaperService;
import com.badlogic.gdx.backends.android.AndroidWallpaperListener;
public class MainActivity extends AndroidLiveWallpaperService{
public static float pixelOffset = 0;
@Override
public void onCreateApplication () {
super.onCreateApplication();
final AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
config.useGL20 = false;
config.useCompass = false;
config.useWakelock = false;
config.useAccelerometer = false;
config.getTouchEventsForLiveWallpaper = true;
final ApplicationListener listener = new WallpaperListener();
initialize(listener, config);
}
public static class WallpaperListener extends BlocksLW implements AndroidWallpaperListener {
@Override
public void create() {
super.resolver = new Resolver() {
@Override
public float getxPixelOffset() {
return pixelOffset;
}
};
super.create();
};
/*
* never use xOffset/yOffset and xOffsetStep/yOffsetStep, because custom launchers will mess with your
* brain and this problem can't be fixed! Use only xPixelOffset/yPixelOffset (who used yPixelOffset???)))
*/
@Override
public void offsetChange (float xOffset, float yOffset, float xOffsetStep, float yOffsetStep, int xPixelOffset, int yPixelOffset) {
pixelOffset = xPixelOffset;
}
@Override
public void previewStateChange (boolean isPreview) {
}
}
}
(BlocksLW是我在核心项目中的App Listener)
这是Semtiko制作的一个非常好的模板LW Template .我的代码主要基于它,我建议你检查一下 ;)
关于android - 如何使用 LibGDx 制作安卓动态壁纸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20804976/