画面の表示方法を変更して画像をロードしました
2273 ワード
//
public static int ScreenOrient(Activity activity)
{
int orient = activity.getRequestedOrientation();
// ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE ,PORTRAIT
if(orient != ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE && orient != ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) {
// > ,
WindowManager windowManager = activity.getWindowManager();
Display display = windowManager.getDefaultDisplay();
int screenWidth = display.getWidth();
int screenHeight = display.getHeight();
orient = screenWidth < screenHeight ? ActivityInfo.SCREEN_ORIENTATION_PORTRAIT : ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
}
return orient;
}
画面によって画像を設定
public static void AutoBackground(Activity activity,View view,int Background_v, int Background_h)
{
int orient=ScreenOrient(activity);
if (orient == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) { //
view.setBackgroundResource(Background_v);
}else{ //
view.setBackgroundResource(Background_h);
}
}
注意:
screenOrientationsプロパティには、7つのオプション値があります(定数はandroid.content.pm.Activity Infoクラスで定義されます):
landscape:横スクリーン(風景写真)、表示時の幅が高さより大きい;
portrait:縦スクリーン(肖像写真)、表示時の高さが幅より大きい;
user:ユーザーの現在の優先方向;
behind:Activityスタックの現在のActivityの下にあるActivityの方向を継承します.
sensor:物理センサによって表示方向が決定され、ユーザーがどのようにデバイスを持っているかによって、デバイスが回転されると方向が変化します.横画面と縦画面の間にあります.
nosensor:物理センサを無視します.すなわち、表示方向は物理センサとは関係なく、ユーザーがデバイスをどのように回転させても表示方向は変化しません(「unspecified」設定を除きます).
unspecified:指定されていません.これはデフォルト値です.Androidシステムが自分で適切な方向を選択し、選択戦略は具体的なデバイスの構成状況によって異なります.そのため、異なるデバイスには異なる方向が選択されます.
以上の設定値はActivityに反映する.getRequestedOrientation()メソッドの戻り値では、対応するsetRequestedOrientation()メソッドは、APIによってプロパティの値を動的に変更できます.次の例では、横画面/縦画面の2つの方向を切り替えることができます.