AndEngineでhdpi/ldpi/mdpiから画像を出し分ける/Deviceの幅を取得/フルスクリーン設定

AndEngineで画像をテクスチャ化するとき、サンプル通りに、assetsフォルダを作って読み込む方法をとっていました。
しかし、、、Deviceのdpiに応じて画像を出し分けるメソッドを最近発見したのでメモ。

//textureの幅と高さは32,64,128,256,512,1024から選ぶ
Texture texture = new Texture(128, 128, TextureOptions.BILINEAR_PREMULTIPLYALPHA);
TextureRegion textureRegion = TextureRegionFactory.createFromResource(texture, this, R.drawable.icon, 0, 0);
engine.getTextureManager().loadTexture(texture);


TextureRegionFactory.createFromResource() メソッドを使います。

ただ、BaseGameActivityを継承しているActivityで

public final float CAMERA_WIDTH = 320;
public final float CAMERA_HEIGHT = 480;

@Override
public Engine onLoadEngine() {
	Camera mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
	Engine engine = new Engine(new EngineOptions(true, ScreenOrientation.PORTRAIT, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), mCamera).setNeedsSound(true).setNeedsMusic(true));
	return engine;
}


で、デバイスの幅をうまく320×480で調整してくれるんですが、その辺との兼ね合いが未だによくわからず。。
Deviceごとに最適な画像を表示させるのは、Androidでめんどくさいことのひとつだと思うのですが、もう一歩ですね。


このメソッドを知る前に、自分で画像を出し分けるところを作ろうとしていたのですが、そのとき調べたことなどをここにメモっておきます。(無駄な時間だったかもしれませんが、これを知れただけでもよしとするか。。。)

//フルスクリーン処理
requestWindowFeature(Window.FEATURE_NO_TITLE);  
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        
//Deviceの情報を取得
WindowManager windowManager = getWindowManager();
Display display = windowManager.getDefaultDisplay();

DisplayMetrics displayMetrics = new DisplayMetrics();
display.getMetrics(displayMetrics);

//Log
Log.v("xdpi",            String.valueOf(displayMetrics.xdpi)); 
Log.v("ydpi",            String.valueOf(displayMetrics.ydpi)); 
Log.v("widthPixels",    String.valueOf(displayMetrics.widthPixels));
Log.v("heightPixels",    String.valueOf(displayMetrics.heightPixels));
Log.v("density",        String.valueOf(displayMetrics.density));
Log.v("scaledDensity",    String.valueOf(displayMetrics.scaledDensity));

Log.v("width",            String.valueOf(display.getWidth()));
Log.v("height",            String.valueOf(display.getHeight()));
Log.v("orientation",    String.valueOf(display.getOrientation()));
Log.v("refreshRate",    String.valueOf(display.getRefreshRate()));
Log.v("pixelFormat",    String.valueOf(display.getPixelFormat()));