android - studio - Cómo dejar que un usuario elija una imagen de la galería para usar en el juego, LibGDX
photoutils android (2)
Para llamar al objeto scupfic de la plataforma (galleryOpener) de otras clases, necesitas pasarle una referencia usando un constructor o un setter:
public class MyGdxApp extends Game {
MainMenuScreen mainMenuScreen;
@Override
public void create() {
mainMenuScreen = new MainMenuScreen(this);
setScreen(mainMenuScreen);
}
}
Luego en la pantalla de tu menú:
public class MainMenuScreen implements Screen {
MyGdxApp app;
// constructor to keep a reference to the main Game class
public MainMenuScreen(MyGdxApp app){
this.app = app;
}
@Override
public void render(float delta) {
// update and draw stuff
if (Gdx.input.justTouched())
app.galleryOpener.getFilePath()
}
...
Soy un principiante aprendiendo LibGDX. Estoy desarrollando mi primer juego en LibGDX donde puedes reemplazar la bola enemiga con la imagen seleccionada (por ejemplo, la cabeza de alguien) y luego esquivar al enemigo. En mi mainmenu tengo botones stage2d y quiero tener un botón que permita al usuario elegir la imagen que quiere usar en el juego. Así que creé un botón y agregué un CLICKListner a él. Ahora, ¿a dónde voy desde aquí? ¿Hay alguna manera de abrir la galería en LibGDX y dejar que el usuario elija una imagen que quiera usar?
Editar:
Entonces, digamos que tengo una interfaz en mi proyecto principal:
public interface OpenGallery {
public void openGallery();
}
Y en mi directorio de Android creo una clase específica de Plataforma que inicia la intención
import android.content.Intent;
import com.kubas.zaidimas.OpenGallery;
public class GalleryOpener extends AndroidLauncher implements OpenGallery {
private static final int SELECT_PICTURE = 1;
@Override
public void openGallery() {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,
"Select Picture"), SELECT_PICTURE);
}
¿Qué debería hacer a partir de este punto? Entonces puedo llamarlo dentro de mi mainmenu?
Creé un ejemplo de proyecto libgdx con código específico de Android para invocar la biblioteca y recuperar la ruta del archivo para la imagen seleccionada por el usuario. Espero que esto te ayude a entender cómo funciona la integración. Lo probé en un par de dispositivos Android. Consulte https://github.com/miket-ap/libgdx-platform-specific-example