Как установить разные проценты для мобильных и планшетов

Я в настоящее время использую API android.support.percent

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

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

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

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

Поэтому я хочу увеличить процент только для телефона.. не планшетов.

Мой вопрос:

Как установить разные проценты для телефонов и планшетов, используя проценты относительного расположения (например, разные размеры)

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

3 ответа

Решение

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

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

и sizess.xml (sw 600dp)

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

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

Вы должны взглянуть на мой ответ прямо здесь /questions/25440712/kak-zastavit-prilozhenie-android-rabotat-v-raznyih-razresheniyah/25440717#25440717

Размер планшета большой, поэтому используйте текущий макет с процентами с помощью квалификатора "Large" или "X Large" и создайте другой без квалификатора или "Normal" для мобильного телефона, где вы можете изменить размер своего представления.

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

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/>
Другие вопросы по тегам