Как растянуть фоновое изображение на живых обоях

Я пытаюсь установить фон моих живых обоев так, чтобы он идеально вписывался в экран. Текущий размер обоев 1024x1024, но на моем экране HTC Desire появляется только часть изображения (размер 480 x 800). Кроме того, когда я пытаюсь установить изображение размером менее 480x800, изображение не растягивается на весь экран.

Есть ли способ добиться этого, чтобы обои идеально подходили хотя бы по высоте независимо от размера экрана?

Вот мой код для справки:

private static final int CAMERA_WIDTH = 480;
private static final int CAMERA_HEIGHT = 720;


@Override
public EngineOptions onCreateEngineOptions() {
 final Camera camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
 return new EngineOptions(true, ScreenOrientation.PORTRAIT_FIXED, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), camera);
}


@Override
public void onCreateResources(OnCreateResourcesCallback pOnCreateResourcesCallback) throws Exception {
 .
 .
 this.mBitmapBackgroundAtlas1 = new BitmapTextureAtlas(this.getTextureManager(), 1024, 1024);
 this.mFaceBackgroundRegion1 = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapBackgroundAtlas1, this, "bg1.jpg", 0, 0);
 this.mBitmapBackgroundAtlas1.load();
 .
 .
}

@Override
public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback) throws Exception {
 this.mEngine.registerUpdateHandler(new FPSLogger());
 .
 .
 mScene.setBackground(new SpriteBackground(new Sprite(0, 0, mFaceBackgroundRegion1, this.getVertexBufferObjectManager())));
 .
 .
}

person Kshitij    schedule 08.05.2012    source источник


Ответы (1)


хорошо ... нашел ответ. Выкладываю для тех, кто тоже ищет.

Вы можете переопределить метод onSurfaceChanged, который имеет ширину и высоту в качестве аргументов. Это дает ширину / высоту экрана вашего устройства.

Вы можете использовать эти значения для масштабирования изображения в соответствии с вашими требованиями.

@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
 this.screenWidth=width;
 this.screenHeight=height;
}
person Kshitij    schedule 09.05.2012