]> gitweb.fperrin.net Git - Dictionary.git/commitdiff
More robust code to get display density.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Tue, 13 Jun 2017 20:35:28 +0000 (22:35 +0200)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Tue, 13 Jun 2017 20:35:28 +0000 (22:35 +0200)
Hopefully avoids the occasional null pointer
exceptions triggered by the previous code.

src/com/hughes/android/dictionary/DictionaryActivity.java

index 9523215e9bd72e5cab208d4205e946c18daeec7d..37c4755ec49bdbd379011f64759a94186aff8127 100644 (file)
@@ -42,6 +42,7 @@ import android.text.Spannable;
 import android.text.method.LinkMovementMethod;
 import android.text.style.ClickableSpan;
 import android.text.style.StyleSpan;
+import android.util.DisplayMetrics;
 import android.util.Log;
 import android.util.TypedValue;
 import android.view.ContextMenu;
@@ -1473,7 +1474,12 @@ public class DictionaryActivity extends ActionBarActivity {
 
         private void getMetrics() {
             // Get the screen's density scale
-            final float scale = getResources().getDisplayMetrics().density;
+            // The previous method getResources().getDisplayMetrics()
+            // used to occasionally trigger a null pointer exception,
+            // so try this instead.
+            DisplayMetrics dm = new DisplayMetrics();
+            getWindowManager().getDefaultDisplay().getMetrics(dm);
+            final float scale = dm.density;
             // Convert the dps to pixels, based on density scale
             mPaddingDefault = (int) (PADDING_DEFAULT_DP * scale + 0.5f);
             mPaddingLarge = (int) (PADDING_LARGE_DP * scale + 0.5f);