2012-05-08 2 views
1

Я пытаюсь установить фон моих живых обоев, чтобы идеально поместиться на экране. Текущий размер обоев - 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()))); 
. 
. 
} 

ответ

3

нормально ... нашел ответ. Отправка его для тех, кто также ищет то же самое.

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

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

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