使用首选项保存纹理

Saving texture with Preferences

所以我想要实现的是:当用户购买新项目(纹理)时,他们可以单击一个按钮以用新项目(纹理)替换旧项目(纹理)。 我首先想到的是 Objectmaps。所以我创建了这个:

ObjectMap<Integer, Texture> screenMap = new ObjectMap<Integer, Texture>();

我目前只使用两个项目来掌握它:

screenMap.put(prefs.getInteger("stoneOne", 0), sdStone);

screenMap.put(prefs.getInteger("stoneTwo", 1), stone_3);

这是我用来改变纹理的方法:

public void setStone1() {
    stoneImage = new Image(screenMap.get(0));

}

public void setStone(int screenId) {
    stoneImage = new Image(screenMap.get(screenId));

  }

现在到我能弄清楚的部分:

Preferences prefs = Gdx.app.getPreferences("preferences");
                    prefs.putString("textField", textField.getText());
                    prefs.putString("textArea", textArea.getText());
                    prefs.getInteger("stone", );
                    prefs.putInteger("stone", );
                    prefs.flush(); 

我不知道该放什么整数,如你所见,我什至现在就把它漏掉了。我尝试了 screenId 整数,但它无法访问,因为它处于空白状态? P.S 别介意我为事物取的奇怪名字。我从一个旧项目中获取了一些代码。

换条路试试

  1. Save Texture to sdcard
  2. 将文件路径保存到首选项中。

Preferences prefs = Gdx.app.getPreferences("preferences");
                        prefs.putString("texture_one_path", "/sdcard/tex1.jpeg");
                        prefs.putString("texture_two_path", "/sdcard/tex2.jpeg");

谢尔盖说得对。纹理又重又大,您可能会拥有大量的纹理。那是针对 SD 卡的。

首选项是用于移动设备的轻量级安全配置文件。它们通常也是加密的,因此访问它们总是需要成本的。它们通常用于用户设置、登录信息等。首选项的 Android 外推称为 SharedPreferences。这是文档:http://developer.android.com/reference/android/content/SharedPreferences.html

"SharedPreferences" 的 iOS 概念称为 NSUserDefaults,这是它​​的页面:https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/index.html

底线:您不应该在首选项中保存太多信息。将它用于字符串、全局值、用户设置(音量级别、用户凭据、关闭 gore 等)。对于大型字符串数据,请使用 raws。对于大型媒体,请使用 SD 卡。

希望对您有所帮助。