英語表示オプションを追加するのには、以下の2つのStack Overflowの質問が役に立ちました。
- http://stackoverflow.com/questions/2264874/changing-locale-within-the-app-itself
- http://stackoverflow.com/questions/5512454/how-to-restore-an-android-apps-default-locale
Configuration.localeは、一度設定するとアプリを再起動してもそのままなので(プロセスが完全にkillされると元に戻るようです)、元の言語に戻すには、システム全体のConfigurationを参照してそのlocaleを設定する必要がありました。
最終的なコードの概要は以下のようになりました。
boolean useEnglish = prefs.getBoolean(PREFS_USE_ENGLISH, false);
Context baseContext = activity.getBaseContext();
Configuration config = baseContext.getResources().getConfiguration();
Locale deviceLocale = Resources.getSystem().getConfiguration().locale;
Locale currentLocale = config.locale;
Locale newLocale = useEnglish ? Locale.ENGLISH : deviceLocale;
if (newLocale.getLanguage().equals(currentLocale.getLanguage())) {
return;
}
Locale.setDefault(newLocale);
config.locale = newLocale;
baseContext.getResources().updateConfiguration(config, baseContext.getResources().getDisplayMetrics());
最新版を使っているのですが、機種htl21でどう設定しても下に余白が出来てしまいます。余白を無くすためには手動でしなければなりません。設定しようとしている画像サイズは、携帯サイズ〜フルHDサイズ全てのサイズで余白が出来てしまいます。解決方法あるのでしょうか。
返信削除余白ができるとのことで申し訳ありません。
削除メニューから「設定」を開き、「ナビゲーションバーを除く」がオフになっているか、ご確認いただけますでしょうか(Android 4.0でオンになっていると、下に余白ができると思います)。
また、拡張モードでご利用の場合、「画像の配置」の「ナビゲーションバーを除く」がオフかどうかご確認ください。
どちらも問題ない場合には、お手数ですが、メニューから「情報」を開き、「最適な壁紙サイズ」と「画面サイズ」の値(幅×高さ)をご連絡いただけますでしょうか(スクリーンショットをお送りいただいても結構です)(アプリ内では、この情報に従ってリサイズ処理をしています)。
よろしくお願いいたします。
たまたま閲覧していた2ちゃんねる掲示板で、関連しそうな情報を見つけました。HTL21の場合、アプリと、本体側の設定によっては、メニューボタンだけのナビゲーションバーが画面下部に表示されるとのことでした。
削除(ご参考・http://anago.2ch.net/test/read.cgi/applism/1363939500/l50 の311)
本体の設定から、「ディスプレイ、ジェスチャ、ボタン」を開き、「[最近使用したアプリケーション]ボタン」で、「常にアプリ利用履歴を表示」以外の設定を選択してみていただけますでしょうか。
よろしくお願いいたします。
>>常にアプリ利用履歴を表示」以外の設定を選択してみていただけますでしょうか。
削除これを試してみたところ、無事解決いたしましたありがとうございます!
あとご連絡遅れてしまい申し訳ございませんでした…
またこのアプリを使っていけるのでとても嬉しいです!ありがとうございました!失礼いたします!
解決したとのことで幸いです。またなにかありましたら、ご連絡ください。
削除よろしくお願いいたします。