android - 如何使用 LibGDx 制作安卓动态壁纸?

标签 android libgdx live wallpaper

我想使用 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/

相关文章:

php - 当数据库中有新条目时显示新条目的最佳方式

android - 添加包含无效字符的元数据

android - 尝试使用 koin 但在 android 上无法正常工作

java - libGDX : Paint And Remove Color From Actor with touchDragged

html - 关于如何处理实时提要(包含来自 mysql 数据库的数据)的建议

jquery - 为什么 jQuery 不影响 Ajax 调用后生成的内容

android - 替代 findViewById 的 Kotlin Android 扩展如何防止空 View ?

android - SOAP 和 RESTFUL 之间的主要区别以及哪个适合 Native 移动应用程序?

android studio 无法解析导入 org.json.JSONObject

libgdx - 如何在 libgdx 中创建一个简单的圆角矩形按钮?