фоновое изображение живых обоев больше, чем размер экрана и двигатель

Я хочу использовать одно изображение для всего экрана, но если я загружу изображение большего размера, чем размер экрана, оно не будет видно. размер изображения 1280х720, размер экрана 960х540. Что я могу сделать?

Код:

public EngineOptions onCreateEngineOptions() {      
    final DisplayMetrics displayMetrics = new DisplayMetrics();
    WindowManager wm = (WindowManager)getSystemService(WINDOW_SERVICE);
    wm.getDefaultDisplay().getMetrics(displayMetrics);
    wm.getDefaultDisplay().getRotation();
    CAMERA_WIDTH = displayMetrics.widthPixels;   
    CAMERA_HEIGHT = displayMetrics.heightPixels;        
    this.mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);               
    return new EngineOptions(true, ScreenOrientation.PORTRAIT_FIXED, new FillResolutionPolicy(), this.mCamera);}

следующий:

public void onCreateResources(OnCreateResourcesCallback  createResourcesCallback) throws Exception {        
    final BuildableBitmapTextureAtlas bitmapTextureAtlas = new BuildableBitmapTextureAtlas(
            mEngine.getTextureManager(), CAMERA_WIDTH, CAMERA_HEIGHT,
            TextureOptions.BILINEAR); 
            mTextureRegion = BitmapTextureAtlasTextureRegionFactory
            .createFromAsset(bitmapTextureAtlas, this, "gfx/h720x1280a.png");

}


person Daniar    schedule 15.12.2013    source источник


Ответы (2)


Лучше масштабировать его для поддержки всех экранов:

int spriteWidth = 1280;
int spriteHeight = 720;
int spriteScaleX = spriteWidth/screenWidth;
int spriteScaleY = spriteHeight/screenHeight;

поместите этот коэффициент в качестве масштаба для вашего фонового спрайта. Он будет поддерживаться на всех устройствах.

person Rama    schedule 16.12.2013

Вам нужно изображение, которое поддерживает соотношение ширины и высоты вашей камеры. Нет необходимости использовать изображение с большим разрешением, OpenGL имеет возможность поддерживать качество изображения.

person Ajay    schedule 09.01.2014