[Android-SDK-Japan:1001] 設定画面で縦画面固定、横画面固定、自動を設定後のView表示

300 views
Skip to first unread message

サンドボックス@東原

unread,
Apr 21, 2010, 6:21:43 AM4/21/10
to Android-SDK-Japan
いつもお世話になっております。

メイン画面と設定画面があります。

現在、自作アプリの設定画面にて画面を縦固定、横固定、自動に切替えの3つを実装しました。

設定が変更されてメイン画面に戻ったら
onCreate、onResumeで
①画面を固定
②Viewを描画
する下記処理をしてます。

//①固定設定(自動、縦固定、横固定)
settings
=PreferenceManager.getDefaultSharedPreferences(getBaseContext());
int rotation
=java.lang.Integer.parseInt(settings.getString("rotation_list", "0"));
if(rotation==0){//自動

this.setRequestedOrientation(Configuration.ORIENTATION_UNDEFINED);
}else if(rotation==1){//縦固定

this.setRequestedOrientation(Configuration.ORIENTATION_PORTRAIT);
}else if(rotation==2){//横固定

this.setRequestedOrientation(Configuration.ORIENTATION_LANDSCAPE);
}else{

this.setRequestedOrientation(Configuration.ORIENTATION_UNDEFINED);
}
//②描画設定
Configuration config = getResources().getConfiguration();
if (config.orientation == Configuration.ORIENTATION_PORTRAIT) {//
Portrait(縦)
setContentView(eBookViewPort);
}else if(config.orientation == Configuration.ORIENTATION_LANDSCAPE)
{// Landscape(横)
setContentView(eBookViewLand);
}else {// 不明な場合
setContentView(eBookViewPort);
}

ですが縦画面固定から横画面固定に変更後、メインに戻っても縦画面用のViewが横向きで表示されます。
横向き固定にはなるが縦画面Viewのままです。

もう一度、設定画面⇒メイン画面に戻るをすると横画面用Viewが表示されました。
2回目だとOKのようです。

固定設定後、Viewを表示させるタイミングに問題があるのでしょうか?

参考書などにはdrawable-port、drawable-landなどに振り分ければ自動で表示を変えてくれると書いてありますが
リソース容量の関係で出来ません。(横にすると2ページ見開きにするので共通のリソースを使いたい)

詳しい方、いらっしゃいましたらご教授のほど宜しくお願いします。

--
このメールは Google グループのグループ「Android-SDK-Japan」の登録者に送られています。
このグループに投稿するには、android-...@googlegroups.com にメールを送信してください。
このグループから退会するには、android-sdk-ja...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-sdk-japan?hl=ja からこのグループにアクセスしてください。

サンドボックス@東原

unread,
Apr 21, 2010, 10:02:21 PM4/21/10
to Android-SDK-Japan
自己レスです。

ORIENTATION_UNDEFINEDは自動で正しいのでしょうか?

①で自動を通ったあと
②で画面を縦にしてもLandscapeしか通りません。

自分でセンサーマネージャを使ってやった方が早い気がしてきました。

サンドボックス@東原

unread,
Apr 26, 2010, 8:37:19 PM4/26/10
to Android-SDK-Japan
自己レスです。

当方の間違いでした。
上記質問は無視してください。

お騒がせしました。
Reply all
Reply to author
Forward
0 new messages