Diferentes tamaños en 2 dispositivos, incluso si utilizo "dp"

Tengo 2 tabletas:

1 Samsung Android 3.0

DisplayMetrics {density=1.0, width=600, height=976, scaledDensity=1.0, xdpi=161.55031, ydpi=155.51021} 

1 dispositivo de bajo costo, Android 2.3.3

  DisplayMetrics {density=1.0, width=480, height=800, scaledDensity=1.0, xdpi=160, ydpi=160.42105} 

Si utilizo un diseño diferente para cada tamaño de pantalla, ambos dispositivos dicen que son grandes y largos y mdpi, por lo que no puedo distinguirlos mediante el uso de nombres de carpeta de diseño … El problema es:

Utilizo un TextView con textSize = "20dp"

En el primer dispositivo, el ancho del texto es la mitad de la pantalla, en el segundo dispositivo es más grande (80% del ancho de la pantalla). ¿Por qué? Espero que ambos dispositivos muestren texto de la misma manera si uso dp (y no px). He intentado también con sp pero nada cambia …

(He utilizado TextView como ejemplo, tengo el mismo problema con todos los elementos en el diseño: tamaños de los botones, …)

Intentaría usar nombres de carpeta de diseño como "layout-w600dp" o algo más introducido en Android 3.2, pero este no es el caso.

Sé que puedo cambiar las dimensiones del elemento por código en onLayout () pero no quiero hacer eso …

¿Cualquier sugerencia?

Actualizar

He resuelto mis problemas con diseños usando temas: Activar una dimens.xml específica en tiempo de ejecución

La documentación de Android de Dimention dice esto

La relación de dp a pixel cambiará con la densidad de pantalla, pero no necesariamente en proporción directa

Así que está totalmente bien lo que ves

Puede alcanzar el 50% de la pantalla usando el peso de LinearLayout.

  • Android - Cómo configurar una fuente personalizada para toda la aplicación
  • ¿Estableciendo el subíndice y el superíndice para el carácter específico en el TextView?
  • Android Ver agregar niño
  • Texto con formas en recurso dibujable
  • Mostrar el número total como texto para múltiples pines con un pin en la misma ubicación en el mapa en android
  • ¿Hay alguna manera de desactivar la función de zoom en los campos de entrada en la vista web?
  • En Android cómo obtener el ancho de la vista de texto que se establece en Wrap_Content
  • Selección de texto en TextView e invocación de menú flotante en un clic largo
  • Cómo crear alineado verticalmente superíndice y subíndice en TextView
  • Acceso a TextView desde otra clase
  • ¿Cómo obtener coordenadas de un ClickableSpan dentro de un TextView?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.