2012-02-08 34 views
0

携帯電話がランドスケープモードの場合、私のアプリはこれを加速度計 で認識します(私は3つの異なる方向と変更の値を持っているので、加速度計を使用します)。オリエンテーションは、私が数秒間歪んだ画像を参照してください変更された場合オリエンテーション変更 - 背景

myLayout.setBackgroundResource(R.drawable....);     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

: は、私は次のコードで向きを変更します。この理由は、外見の変更前にBackgroundRessourceが変更されていることが明らかです。

私はレイアウトランドとレイアウトポートのフォルダを使用しようとしました。その結果、横向きの向きでは常に歪んだイメージになります。私はこの問題を回避するにはどうすればよい

答えて

0

ランドスケープに切り替えるときに黒い画面が表示される以外は同様の問題があります。誰かがあなたのために働くかもしれない新しいdrawable-landフォルダを作成することに言及しました...私のためにdid not仕事tho。

ここのメンバーからこの回答が届きました。試してみます。

@Override 
public void onCreate(Bundle savedInstanceState){ 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 

LinearLayout linearLayout = (LinearLayout)findViewById(R.id.layout); 
Resources res = getResources(); 
Drawable portrait = res.getDrawable(R.drawable.portrait); 
Drawable landscape = res.getDrawable(R.drawable.landscape); 

WindowManager window = (WindowManager)getSystemService(WINDOW_SERVICE); 
Display display = window.getDefaultDisplay(); 
int num = display.getRotation(); 
if (num == 0){ 
    linearLayout.setBackgroundDrawable(portrait); 
}else if (num == 1 || num == 3){ 
    linearLayout.setBackgroundDrawable(landscape); 
}else{ 
    linearLayout.setBackgroundDrawable(portrait); 
} 
} 
関連する問題