Почему в эмуляторе размер графики 9 патчей корректен, а не на телефоне? - PullRequest
8 голосов
/ 23 февраля 2011

У меня есть RelativeLayout с фоновым изображением из 9 патчей. Изображение представляет собой простой речевой пузырь с идеально отцентрированной «стрелкой» внизу посередине. Speech bubble

RelativeLayout раздувается и помещается в MapView. Используя эмулятор, речевой пузырь можно легко указать на местоположение и расширить его содержимое (текст, изображение или оба). Однако, когда я запускаю свое приложение на телефоне, 9-патч не растягивается должным образом. «Стрелка» для речевого пузыря будет смещена влево на очень заметную величину.

Я в основном тестирую на Nexus S, но также на Samsung Captivate и Nexus One. Targeting SDK 7. Протестированные эмуляторы для SDK 7+. Только аппаратные устройства, кажется, имеют эту проблему.

<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>

1 Ответ

18 голосов
/ 24 февраля 2011

Убедитесь, что у вас есть версия mdpi и hdpi, если вы тестируете на разных плотностях. Например, если вы поместите свой 9patch в res / drawable /, он будет рассматриваться как актив mdpi и автоматически масштабироваться на устройствах hdpi (Nexus S). Поскольку это автоматический процесс, результаты не гарантируются.

...