From abcbc98ce32586c4ce580cf7f9597861c5dec844 Mon Sep 17 00:00:00 2001 From: Mygod Date: Wed, 5 Oct 2016 22:58:18 +0800 Subject: [PATCH] Refine MyNumberPicker --- .../preference/NumberPickerPreference.scala | 24 +++++-------------- .../com/github/shadowsocks/utils/Utils.scala | 4 +++- 2 files changed, 9 insertions(+), 19 deletions(-) diff --git a/src/main/scala/be/mygod/preference/NumberPickerPreference.scala b/src/main/scala/be/mygod/preference/NumberPickerPreference.scala index dfc61a23..37f4066b 100644 --- a/src/main/scala/be/mygod/preference/NumberPickerPreference.scala +++ b/src/main/scala/be/mygod/preference/NumberPickerPreference.scala @@ -6,30 +6,18 @@ import android.support.v7.preference.DialogPreference import android.util.AttributeSet import android.view.View import android.view.ViewGroup.LayoutParams -import android.widget.NumberPicker -import android.widget.EditText +import android.widget.{EditText, NumberPicker} import com.github.shadowsocks.R +import com.github.shadowsocks.utils.Utils -class MyNumberPicker(private val context: Context, attrs: AttributeSet = null) - extends NumberPicker(context, attrs) { - override def addView(child: View) { - super.addView(child) - updateView(child) - } - override def addView(child: View, params: LayoutParams) { - super.addView(child, params) - updateView(child) - } +class MyNumberPicker(private val context: Context, attrs: AttributeSet = null) extends NumberPicker(context, attrs) { override def addView(child: View, index: Int, params: LayoutParams) { super.addView(child, index, params) - updateView(child) - } - def updateView(child: View) { - if (child.isInstanceOf[EditText]) { - child.asInstanceOf[EditText].setTextSize(dp2px(6)) + child match { + case et: EditText => et.setTextSize(Utils.spToPx(context, 6)) + case _ => } } - def dp2px(dp: Float): Int = (dp*getResources().getDisplayMetrics().density).toInt } class NumberPickerPreference(private val context: Context, attrs: AttributeSet = null) diff --git a/src/main/scala/com/github/shadowsocks/utils/Utils.scala b/src/main/scala/com/github/shadowsocks/utils/Utils.scala index 24c02178..cfe757c4 100644 --- a/src/main/scala/com/github/shadowsocks/utils/Utils.scala +++ b/src/main/scala/com/github/shadowsocks/utils/Utils.scala @@ -78,7 +78,9 @@ object Utils { } def dpToPx(context: Context, dp: Int): Int = - Math.round(dp * (context.getResources.getDisplayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT)) + Math.round(dp * context.getResources.getDisplayMetrics.density) + def spToPx(context: Context, sp: Int): Int = + Math.round(sp * context.getResources.getDisplayMetrics.scaledDensity) /* * round or floor depending on whether you are using offsets(floor) or