Tengo una RelativeLayout que tiene una imagen de fondo de 9 parches. La imagen es una burbuja de diálogo simple con una "flecha" perfectamente centrada en la parte inferior central. ¿Por qué los gráficos de 9 parches tienen el tamaño correcto en el emulador pero no en un teléfono?
El RelativeLayout se infla y se coloca en un MapView. Al usar el emulador, el globo de diálogo se puede apuntar fácilmente a una ubicación y se expandirá a su contenido (texto, imagen o ambos). Sin embargo, cuando ejecuto mi aplicación en un teléfono, el parche 9 no se estira correctamente. La "flecha" para el globo de diálogo se desplazará hacia la izquierda en una cantidad muy notable.
Pruebo principalmente en un Nexus S, pero también en un Samsung Captivate y un Nexus One. Targeting SDK 7. Emuladores probados para SDK 7+. Solo los dispositivos de hardware parecen tener este problema.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:id="@+id/BubbleLayout"
android:background="@drawable/bubble"
android:layout_width="wrap_content"
android:gravity="center_horizontal">
<TextView android:layout_height="wrap_content"
android:id="@+id/date"
android:layout_width="wrap_content"
android:maxWidth="196dp"></TextView>
<TextView android:layout_below="@+id/date"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:maxWidth="196dp"
android:id="@+id/summary"></TextView>
</RelativeLayout>
Gracias! Ahora tengo todos los gráficos necesarios y está funcionando bien. También me las arreglé para "arreglar" este problema antes usando un png con un ancho impar y jugué con el espaciado en mi gráfico, lo que hizo que escalara uniformemente. No es un método a seguir, pero pensé que valía la pena mencionarlo. – originalbryan