Как сделать живые обои для Android с помощью LibGDx?

Я хочу сделать Android Живые обои, используя LibGDx. Я создал проект, следуя инструкциям из этой ссылки на github

но Eclipse показывает ошибку:

«Метод createListener() типаMainActivity должен переопределять или реализовывать метод супертипа»

«Метод createConfig() типа MainActivity должен переопределять или реализовывать метод супертипа»

и предлагает удалить аннотацию @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);
}

}


person user3140071    schedule 27.12.2013    source источник
comment
Если вы измените сигнатуры методов, аннотированных @Override, вы больше не переопределите свой метод, и поэтому аннотация будет неправильной.   -  person K.C.    schedule 27.12.2013


Ответы (1)


Похоже, что вики о LiveWallpapers устарела (я собираюсь это проверить). Вот как я это делаю:

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 - мой прослушиватель приложений в основном проекте)

Это очень хороший шаблон, сделанный Семтико LW Template. Я основывал свой код в основном на нем, рекомендую вам проверить;)

person Lestat    schedule 27.12.2013
comment
шаблон дает мне ошибку при полном импорте, пожалуйста, скажите мне способ - person rana_sadam; 28.04.2015