2015-10-23 2 views
1

Я проверил, что мой макет выглядит корректно, за исключением одного режима ландшафтного устройства, который я хотел бы исправить.Android 7-дюймовый планшет с таблетками

Supporting multiple screens выглядит устаревшим.

600dp: а 7” таблетка (600x1024 MDPI).

720dp: а 10” таблетка (720x1280 MDPI, 800x1280MDPI, и т.д.).

MDPI Ресурсы средней плотности (MDPI) экраны (~ 160dpi). (Это базовая плотность.)

ИПЧР Ресурсы для высокой плотности (ИПЧР) экраны (~ 240dpi).

Мое устройство представляет собой 7" планшет с разрешением 800 х 1280:. SM T235 имеет 216 точек на дюйм

Мне интересно, как я мог установить его размеры макета в ландшафтном режиме с меньшим влиянием на другие

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/nav_header_height" 
    android:background="@drawable/side_nav_bar" 
    android:gravity="bottom" 
    android:orientation="horizontal" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark"> 

    <ImageView 
     android:id="@+id/imageView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/top_left" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="@dimen/activity_horizontal_margin" 
     android:text="Tel: " 
     android:textAppearance="@style/TextAppearance.AppCompat.Body1" /> 

    <TextView 
     android:id="@+id/textView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="123456789" /> 


</LinearLayout> 

ImageView должен быть ближе к левому краю, а TextView с «Tel:» должен быть ближе к изображению, но только в ландшафтном режиме и на этом устройстве. У меня есть другое устройство для тестирования: 10-дюймовое разрешение, и оно не должно влиять что.

Я думаю, что @dimen/activity_horizontal_margin необходимо изменить в /res/values/dimens.xml, добавив некоторые суффиксы в папку values. я сгенерировал values-v21 и values-w820dp

EDIT: Сгенерированный файл в Android Studio: Рез/значения-w820dp /dimens.xml

<resources> 
    <!-- Example customization of dimensions originally defined in res/values/dimens.xml 
     (such as screen margins) for screens with more than 820dp of available width. This 
     would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). --> 
    <dimen name="activity_horizontal_margin">64dp</dimen> 
</resources> 

Я понятия не имею, почему принимает значения от значения-w820dp, так как моя ширина меньше 820. Мне просто нужно было добавить -л.

ответ

1

Возможно, вы упустили tvdpi квалификатор the page.

Таким образом, вы можете использовать специальный dimens.xml как:

/res/values-land-tvdpi/dimens.xml 

EDIT

При использовании нескольких классификаторов, порядок этих классификаторов должен быть один из в table2. См.: Qualifier Rules.

+0

Никогда не использовал tvdpi, кажется, я должен начать использовать, даже для планшетов, а не TV :) – Szabi

+0

Ошибка: выполнение выполнено для задачи ': AndroidApp: mergeDebugResources'. > ... AndroidApp \ src \ main \ res \ values-tvdpi-land: Ошибка: недопустимое имя каталога ресурса – Szabi

+0

Я не знаю почему, но это решение: values-w820dp-land – Szabi

Смежные вопросы