我想在所有屏幕上使用一个图像,但如果我加载的图像大于屏幕尺寸,则不可见。图像尺寸为1280x720,屏幕尺寸为960x540。我能做什么?
代码:
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");
}
答案 0 :(得分:0)
最好将其缩放以支持所有屏幕:
int spriteWidth = 1280;
int spriteHeight = 720;
int spriteScaleX = spriteWidth/screenWidth;
int spriteScaleY = spriteHeight/screenHeight;
将此因子作为比例放置到您的背景精灵。它将支持所有设备。
答案 1 :(得分:0)
您需要一个保持相机宽度和高度比例的图像,不需要使用大分辨率图像,OpenGL具有保持图像质量的能力。