2013年5月6日月曜日

壁紙ぴったん、英語表示設定を追加(1.6.6)

機械翻訳が不評のようでしたので、強制的に英語を表示する設定を追加しました。日本語ユーザーの方には関係のないアップデートで、引き続き申し訳ありません。

英語表示オプションを追加するのには、以下の2つのStack Overflowの質問が役に立ちました。


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());

5 件のコメント:

  1. 最新版を使っているのですが、機種htl21でどう設定しても下に余白が出来てしまいます。余白を無くすためには手動でしなければなりません。設定しようとしている画像サイズは、携帯サイズ〜フルHDサイズ全てのサイズで余白が出来てしまいます。解決方法あるのでしょうか。

    返信削除
    返信
    1. 余白ができるとのことで申し訳ありません。
      メニューから「設定」を開き、「ナビゲーションバーを除く」がオフになっているか、ご確認いただけますでしょうか(Android 4.0でオンになっていると、下に余白ができると思います)。
      また、拡張モードでご利用の場合、「画像の配置」の「ナビゲーションバーを除く」がオフかどうかご確認ください。
      どちらも問題ない場合には、お手数ですが、メニューから「情報」を開き、「最適な壁紙サイズ」と「画面サイズ」の値(幅×高さ)をご連絡いただけますでしょうか(スクリーンショットをお送りいただいても結構です)(アプリ内では、この情報に従ってリサイズ処理をしています)。
      よろしくお願いいたします。

      削除
    2. たまたま閲覧していた2ちゃんねる掲示板で、関連しそうな情報を見つけました。HTL21の場合、アプリと、本体側の設定によっては、メニューボタンだけのナビゲーションバーが画面下部に表示されるとのことでした。
      (ご参考・http://anago.2ch.net/test/read.cgi/applism/1363939500/l50 の311)
      本体の設定から、「ディスプレイ、ジェスチャ、ボタン」を開き、「[最近使用したアプリケーション]ボタン」で、「常にアプリ利用履歴を表示」以外の設定を選択してみていただけますでしょうか。
      よろしくお願いいたします。

      削除
    3. >>常にアプリ利用履歴を表示」以外の設定を選択してみていただけますでしょうか。

      これを試してみたところ、無事解決いたしましたありがとうございます!

      あとご連絡遅れてしまい申し訳ございませんでした…


      またこのアプリを使っていけるのでとても嬉しいです!ありがとうございました!失礼いたします!

      削除
    4. 解決したとのことで幸いです。またなにかありましたら、ご連絡ください。
      よろしくお願いいたします。

      削除