Не одинаковое отображение элементов на разных экранах

Рейтинг: 1Ответов: 1Опубликовано: 24.11.2014

Добрый день! Если я верно понял, то с использованием единицы измерения dip элементы будут выглядеть одинаково на разных экранах. Однако, на деле разница есть:

Код в item_ad.xml:

<ImageView
        android:layout_width="12dip"
        android:layout_height="12dip"
        android:layout_margin="6dip"
        android:id="@+id/marker_ad_image"
        android:src="@drawable/marker"
        android:layout_alignTop="@+id/item_ad_image"
        android:layout_alignRight="@+id/item_ad_image"
        android:layout_alignEnd="@+id/item_ad_image" />

Который использует marker.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="oval">
        <solid android:color="#96BF0D"/>
        <stroke android:width="1.5dip" android:color="#FFFFFF" />
    </shape>
</item>
</selector>

В итоге: huawei ascend d1, 4.5", 1280x720: (на нем приложение и тестировалось)

alt text

Samsung galaxy tab GT-P5110, 10.1", 1280x800

alt text

Речь о не правильном отображении маркера (ну и шрифта). Как быть в такой ситуации?

Ответы

▲ 2Принят

Тут выход один, выносить размер android:width="1.5dip" в ресурсы, в разные типы экранов и, соответственно, значения должны быть разными.

Попробуйте создать папку res/values-normal и в ней создать файлик с размерами для телефона, а в res/values-xlarge создать файлик с размерами для планшета.

Играть явно нужно с этими параметрами (компоновкой для разных типов экранов)