Как настроить ориентацию экрана libgdx livewallpaper только в портретном режиме? - PullRequest
0 голосов
/ 22 декабря 2018

Я создаю живые обои для Android с помощью Libgdx. Это просто круг на экране, который получает случайный цвет и положение, и он медленно перемещается вверх.Проблема в том, что я хочу, чтобы программа работала только в портретном режиме, но когда я включаю телефон, он переходит в альбомный режим.

Я уже пытался изменить ориентацию файла манифеста на protrait android: screenOrientation = "Portrait" и поместитьthis.setRequestOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);в классе Android Launcher, но ничего не работает

Класс Android Launcher

public class AndroidLauncher extends AndroidApplication {
@Override
protected void onCreate (Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
    initialize(new CoreLWP(), config);
     }
    }

Класс живых обоев

public class LiveWallpaper  extends AndroidLiveWallpaperService {

public CoreLWP wallpaper;

@Override
public void onCreateApplication () {
super.onCreateApplication();

final AndroidApplicationConfiguration config = new    AndroidApplicationConfiguration();

this.wallpaper = new CoreLWP();
initialize(this.wallpaper, config);

  }   
}

Базовый класс живых обоев

public class CoreLWP extends ApplicationAdapter implements ApplicationListener, AndroidWallpaperListener {


private ShapeRenderer ball;
private float x,y;
private Random random;

private float r,g,b;

@Override
public void create () {
ball = new ShapeRenderer();
random = new Random();

//generating random position
x = random.nextInt(Gdx.graphics.getWidth());
y = random.nextInt(Gdx.graphics.getHeight());

 //generating random rgb values
 r = getFloatRandomNum(0, 1) ;
 g = getFloatRandomNum(0, 1) ;
 b = getFloatRandomNum(0, 1) ;
 }

   @Override
    public void render () {

//setting the background
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

//updating x and y position
x = x + 0.5f;
y = y + 0.6f;

ball.begin(ShapeRenderer.ShapeType.Filled);
ball.setColor(r,g,b,1);
ball.circle(x,y,100);
ball.end();

}

//returns a random float number between a range
private float getFloatRandomNum(float min, float max) {
float random = min + new Random().nextFloat() * (max - min);
return random;
}

@Override
public void dispose () {
ball.dispose();
}

@Override
public void offsetChange(float xOffset, float yOffset, float xOffsetStep, float yOffsetStep, int xPixelOffset, int yPixelOffset) {}

@Override
public void previewStateChange(boolean isPreview) {}

@Override
public void iconDropped(int x, int y) {}
}

Возможно ли это сделатьДля фиксации ориентации только на портрет для живых обоев

...