ネットワーク経由で画像をダウンロードし、これを使用して画像アクターとしてlibgdxUIに追加します。
Pixmap pm = new Pixmap(data, 0, data.length);
Texture t = new Texture(pm);
TextureRegion tr = new TextureRegion(t,200,300);
TextureRegionDrawable trd = new TextureRegionDrawable(tr);
Image icon = new Image();
icon.setDrawable(trd);
これを考えると、OpenGLコンテキストが失われると(たとえば、画面がスリープ状態になるため)、テクスチャデータが失われるため、テクスチャデータをリロードする方法が必要です。
自分のマネージャークラスを作ってみました
DynamicTextureManager.register(t, pm); // Register texture together with the source pixmap
上記のスニペットに、そしてresume()
私はします:
DynamicTextureManager.reload();
マネージャークラス:
public class DynamicTextureManager {
private static LinkedHashMap<Texture, Pixmap> theMap = new
LinkedHashMap<Texture,Pixmap>();
public static void reload() {
Set<Entry<Texture,Pixmap>> es = theMap.entrySet();
for(Entry<Texture,Pixmap> e : es) {
Texture t = e.getKey();
Pixmap p = e.getValue();
t.draw(p, 0, 0);
}
}
public static void register(Texture t, Pixmap p) {
theMap.put(t, p);
}
}
しかし、これは役に立ちません-私はまだテクスチャがアンロードされ、画像の代わりに白い領域ができてしまいます。
これはどのように行う必要がありますか?これを示すコードを見つけることができませんでした!