2016-10-04 4 views
1

настоящее время я использую android.support.percent APIКак установить различные проценты для мобильных устройств и планшетов

Мой пример кода

<android.support.percent.PercentRelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"/> 
<TextView 
    android:text="Completed" 
    app:layout_widthPercent="40%" 
    app:layout_heightPercent="40%" 
    app:layout_marginTopPercent="15%" 
    app:layout_marginLeftPercent="15%"/> 
</android.support.percent.PercentRelativeLayout/> 

Моя проблема:

Процент относительной раскладку правильно вписываются в планшеты ... Но некоторые виды дисплея очень малы в мобильном телефоне.

Так что я хочу увеличить процент только для телефона .. не таблеток.

Мой вопрос:.

Как установить различный процент для телефонов & таблетки с использованием процентов относительно компоновки (например, различных размеров)

приложение: layout_heightPercent = "40%" // подходит для планшета Но я хочу, чтобы увеличить до 50% для телефона ..

+1

как обычно ... хранение значений в размерах ресурсов зависимых от – Selvin

+0

@ Selvin его сложно ... его% .. не строка или DP .. Так что я смущен. –

+1

это 'fraction' – Selvin

ответ

4

вы можете использовать наименьшую ширину Dimens

enter image description here

<android.support.percent.PercentRelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"/> 
<TextView 
    android:text="Completed" 
    app:layout_widthPercent="@fraction/width" 
    app:layout_heightPercent="@fraction/height" 
    app:layout_marginTopPercent="@fraction/margin_top" 
    app:layout_marginLeftPercent="@fraction/margin_left"/> 
</android.support.percent.PercentRelativeLayout/> 

и в: РАЗМЕРЫ

dimens.xml

<fraction name="width">40%</fraction> 
    <fraction name="height">40%</fraction> 
    <fraction name="margin_top">15%</fraction> 
    <fraction name="margin_left">15%</fraction> 

и dimens.xml (ЕО 600dp)

<fraction name="width">40%</fraction> 
    <fraction name="height">50%</fraction> 
    <fraction name="margin_top">15%</fraction> 
    <fraction name="margin_left">15%</fraction> 

вы можете увидеть больше деталей для дизайна экрана here

+0

точно ищет этот ответ. спасибо –

+0

жаль, что не работает .. он показывает ошибку - (фракция не разрешена) при компиляции –

+1

@RanjithKumar извините, что у меня была ошибка. я его редактировал. это должно быть сейчас. –

1

Вы должны взглянуть на мой ответ здесь https://stackoverflow.com/a/39571409/6644403

Размер планшета большой, поэтому используйте текущую компоновку ur с процентом с квалификатором «Большой» или «Большой X» и создайте еще один, не имеющий квалификатора или «Обычный» квалификатор для мобильных устройств, где вы можете изменить размер своего вида.

+0

Я знаю структуру папок разных размеров .. Я спрашиваю, как сохранить процентное значение –

+0

Как установить разный процент для телефонов и планшетов с использованием процентной относительной компоновки (например, разных размеров) app: layout_heightPercent = " 40% "// подходит для планшета Но я хочу увеличить до 50% для телефона. Ваш вопрос не в том, чтобы хранить процентные значения или я не понимаю? –

0

Для временного решения можно использовать различные папки макета для различных экранов. Для телефона макет папка и для планшета макет-большой.

screen.xml для расположения папки

<android.support.percent.PercentRelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"/> 
<TextView 
    android:text="Completed" 
    app:layout_widthPercent="40%" 
    app:layout_heightPercent="40%" 
    app:layout_marginTopPercent="15%" 
    app:layout_marginLeftPercent="15%"/> 
</android.support.percent.PercentRelativeLayout/> 

screen.xml для макета большого папку

<android.support.percent.PercentRelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"/> 
<TextView 
    android:text="Completed" 
    app:layout_widthPercent="80%" 
    app:layout_heightPercent="80%" 
    app:layout_marginTopPercent="30%" 
    app:layout_marginLeftPercent="30%"/> 
</android.support.percent.PercentRelativeLayout/> 
Смежные вопросы