Реализуйте настройки с помощью SharedPreference, для Android Live Wallpaper - PullRequest
1 голос
/ 02 сентября 2010

Хорошо, мне нужна помощь в добавлении настроек, чтобы выбрать, какую текстуру показывать - вы должны быть в состоянии сказать, что я имею в виду, потому что уже есть две настройки.У меня есть графический интерфейс для настроек, а также активность, которую я просто не могу понять, как это реализовать.Если вы можете мне помочь, я добавлю вас в приложение в настройках и в маркете.Вместе с вашим именем, веб-сайтом или чем-либо на моем канале YouTube в видео.Который можно найти здесь, youtube.com / motodroidhelpandinfo .У меня более 1200 подписчиков.Заранее спасибо.

Вот мои предпочтения Активность:

package quotesandothers.livewallpaper.quotesandothers;

import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceActivity;

public class Settings extends PreferenceActivity implements
        SharedPreferences.OnSharedPreferenceChangeListener {

    @Override
    protected void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        getPreferenceManager().setSharedPreferencesName(
                livewallpaper.PREFERENCES);
        addPreferencesFromResource(R.xml.wallpaper_settings);
        getPreferenceManager().getSharedPreferences()
                .registerOnSharedPreferenceChangeListener(this);
    }

    @Override
    protected void onResume() {
        super.onResume();
    }

    @Override
    protected void onDestroy() {
        getPreferenceManager().getSharedPreferences()
                .unregisterOnSharedPreferenceChangeListener(this);
        super.onDestroy();
    }

    @Override
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
            String key) {}
}

А вот моя попытка реализовать это в основной деятельности.Заметьте, что я не смог уместиться во всей Деятельности только в том, что относится к делуТакже я хочу, чтобы настройки менялись между текстурами, которые вы можете видеть.Также я использую andengine.org в качестве основы.

@Override
public void onLoadResources() {
    preferences = PreferenceManager.getDefaultSharedPreferences(this);
    preferences.registerOnSharedPreferenceChangeListener(this);
    this.mTexture = new Texture(2048, 2048, TextureOptions.DEFAULT);
    this.mParallaxLayerMid1 = TextureRegionFactory.createFromAsset(
            this.mAutoParallaxMotivationalTexture, this, "gfx/middle1.png",
            0, 320);
    this.mParallaxLayerTop = TextureRegionFactory.createFromAsset(
            this.mAutoParallaxMotivationalTexture, this, "gfx/top.png", 0,
            0);
    this.mParallaxLayerTop2 = TextureRegionFactory.createFromAsset(
            this.mAutoParallaxMotivationalTexture, this, "gfx/top2.png", 0,
            173);
    this.mParallaxLayerMid2 = TextureRegionFactory.createFromAsset(
            this.mAutoParallaxMotivationalTexture, this, "gfx/middle2.png",
            0, 450);
    this.mParallaxLayerLow1 = TextureRegionFactory.createFromAsset(
            this.mAutoParallaxMotivationalTexture, this, "gfx/lower1.png",
            200, 574);
    this.mParallaxLayerLow2 = TextureRegionFactory.createFromAsset(
            this.mAutoParallaxMotivationalTexture, this, "gfx/lower2.png",
            0, 740);
    this.mEngine.getTextureManager().loadTextures(this.mTexture,
            this.mAutoParallaxMotivationalTexture);
    this.mTexture = new Texture(2048, 2048, TextureOptions.DEFAULT);
    this.mParallaxLayerTopInspired = TextureRegionFactory.createFromAsset(
            this.mAutoParallaxInspirationalTexture, this,
            "gfx/topinspired.png", 0, 0);
}

public void OnSharedPreferenceChanged(SharedPreferences prefs, String key) {}

1 Ответ

0 голосов
/ 04 сентября 2010

Все выглядит хорошо.

В моем приложении есть только одно отличие, которое я основал на примере обоев куба.

Эта строка, где вы получаете настройки, выглядит для меня иначе.

preferences = PreferenceManager.getDefaultSharedPreferences(this);

Шахта:

preferences = myWallpaper.this.getSharedPreferences(SHARED_PREFS_NAME, 0);

Попробуйте и посмотрите, что произойдет.

...