Convertir píxeles en sp

Necesito el TextSize actual de TextView en unidades sp .

Pero getTextSize() devuelve el tamaño en pixels . Así que hay una manera de convert pixels to sp ?

3 Solutions collect form web for “Convertir píxeles en sp”

Vea la clase DisplayMetrics , tiene campos para densityDpi y scaledDensity .

Ejemplo de uso:

 float sp = px / getResources().getDisplayMetrics().scaledDensity; 

Utilizar esta

 public static float pixelsToSp(Context context, float px) { float scaledDensity = context.getResources().getDisplayMetrics().scaledDensity; return px/scaledDensity; } 

Si desea probar si este método funciona correctamente, use este fragmento

XML

 <TextView android:id="@+id/txtHelloWorld" android:text="@string/hello_world" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20sp"/> <TextView android:id="@+id/txtHelloWorld2" android:text="@string/hello_world" android:layout_width="wrap_content" android:layout_height="wrap_content" /> 

Java

 View rootView = inflater.inflate(R.layout.fragment_main, container, false); TextView helloWorldTextView = (TextView) rootView.findViewById(R.id.txtHelloWorld); TextView helloWorldTextView2 = (TextView) rootView.findViewById(R.id.txtHelloWorld2); helloWorldTextView2.setTextSize(pixelsToSp(getActivity(), helloWorldTextView.getTextSize())); 

El tamaño de fuente de TextView debe ser el mismo.

Extraño ver campo público que se ajusta en tiempo de ejecución, pero funciona. Dpi estándar es de 160, así que cualquier dispositivo Dpi es, digamos 240, tanto la densidad y scaledDensity mostrará 240/160 = 1.5 Así es como convertir entre píxeles y sp: px = 1.5 * sp

  • Android.content.ActivityNotFoundException cuando el enlace no contiene http
  • Alineación de la línea de base de dos vistas de texto en Android
  • Calcular el tamaño del texto según el ancho del área de texto
  • Tener una vista en torno a otra vista
  • ¿Puedo saber cuántos caracteres pueden caber en TextView de X anchura dp?
  • Android: ClickableSpan en TextView seleccionable
  • TextView: lineSpacingMultiplier y lineSpacingExtra también se aplica a la última línea
  • Custom TextView en android con diferentes palabras de color
  • TextView en android sólo muestra dos líneas de texto en cualquier orientación
  • Obtener texto seleccionado de TextView
  • ¿Existe tal llamada de método "getBackgroundColor"?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.