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

  • Clickable TextView en Android
  • El identificador de recursos no puede ser una cadena vacía (en 'texto' con valor '?') En el atributo textAppearance
  • Prevenir salto de línea en TextView
  • Selector de texto no funciona
  • Android cómo hacer TextView texto en negrita cuando se presiona o centrado
  • Utilizar programaticamente setTextSize en? Attr / textAppearanceLarge
  • Pellizcar Zoom en el texto de vista Android
  • ¿Cómo puedo crear una vista de texto que cambie automáticamente su tamaño de fuente para que se ajuste al espacio?
  • Android: ¿define TextView TextStyle mediante programación?
  • Android - Configuración de TextView a negrita no funciona
  • TextView envuelve el texto después de cambiar el tipo de letra
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.