SharedPreferenceの変更時に警告アラート表示
アプリの設定(SharedPreference)を変更した際、スマホの画面解像度(画面サイズdp)が小さいとWebViewが表示崩れが発生する恐れがでてきた。
表示崩れが発生する可能性がある設定に変更した時、警告アラートを出すことにした。
まず、基準となる解像度を調査。以下のようなQiita記事を参考。
2015年発売Android端末のdp解像度まとめ
http://qiita.com/nein37/items/0a622f7ebbbb92db93d5#_reference-05eb2ffe676dfafa464c
んで画面サイズを取得
Androidでデバイスの大きさをdpで取得する
http://aroundthedistance.hatenadiary.jp/entry/2015/03/16/122827
(一部引用)
DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); float dpWidth = displayMetrics.widthPixels / displayMetrics.density;
それで調べた通り、PreferenceFragmentなクラスに実装
public static class SampleFragment extends PreferenceFragment { ︙ //設定変更された時に呼ばれる @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { if(key.equals(対象の設定[])){ //画面解像度(横幅)をdbで取得 DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); float dpWidth = displayMetrics.widthPixels / displayMetrics.density; if(dpWidth <= 基準サイズ){ int screenSize = sharedPreferences.get(key, null); //画面サイズ最大のときのみ警告を出す } } } }
参考:
http://u64178.blogspot.jp/2014/07/android-preferencefragment-preference.html