1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/archermind-ti-rudeness

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Грубость

Один из вариантов грубого быстрого полноэкранного адаптивного решения.

Проект включает:

  • rudenesSdk — очень простая библиотека, реализованная в соответствии с указанным решением.
  • rudenessDemo — демоверсия.

Проект

  • Основа: использование vp в качестве единицы длины, переопределение относительных единиц, связанных с размером экрана.

  • Рисование: при написании XML используйте размеры из дизайн-документа, заменив единицы измерения на vp. Например, если ширина дизайна составляет 200, а длина элемента управления на дизайне равна 3, то при инициализации установите ширину равной 200 и длину элемента управления равной 3vp. Тогда на любом экране длина этого элемента будет составлять 3/200 от ширины экрана.

  • Предварительный просмотр: важно правильно отображать страницу во время предварительного просмотра. Возьмём для примера дизайн с разрешением 1080 * 2340. Чтобы обеспечить такой же предварительный просмотр, как и при обычном рисовании, создайте устройство с размерами 2340 по длине и 1080 по ширине и используйте его для предварительного просмотра.

Интеграция

Метод 1: прямое использование har-пакета

Создайте har-пакет с помощью library и добавьте его в папку libs проекта, который вы хотите интегрировать. В файле gradle entry добавьте следующий код:

implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])

Метод 2: зависимость gradle

Добавьте следующие строки кода во все проекты:

allprojects{
    repositories{
        mavenCentral()
    }
}
implementation "com.gitee.archermind-ti:rudeness:1.0.0"

Использование

  1. Шаг 1:

    
    

public class DensityHelper {

/** * Получение ширины экрана * @return ширина экрана */

public static int getDisplayWidthInPx( Context context) {
    Display display = DisplayManager.getInstance().getDefaultDisplay(context).get();
    return display.getAttributes().width;
}

/**
 * Получение высоты экрана без учёта высоты строки состояния
 * @return высота экрана без учёта высоты строки состояния
 */
 
public static int getDisplayHeightInPx( Context context) {
    Display display = DisplayManager.getInstance().getDefaultDisplay(context).get();
    return display.getAttributes().height;
}

/**
 * Преобразование vp в пиксели
 *
 * @param vp
 * @return
 */
 
public static float vp2px( float vp, Context context) {
    DisplayAttributes attributes = DisplayManager.getInstance().getDefaultDisplay(context).get().getAttributes();
    return  (attributes.densityPixels * vp);
}

}

2. **Шаг 2:**

public class RudeAbilitySlice extends AbilitySlice {

protected void onStart(Intent intent) {
    initBottom();
}

public void initBottom() {
    //Получение ID контейнера страницы
    DirectionalLayout tab = (DirectionalLayout) findComponentById(ResourceTable.Id_rude_tab);
    //Получение Text ID
    Text buttonLogin = (Text) tab.findComponentById(ResourceTable.Id_log_in);
    //Установка размера текста
    buttonLogin.setTextSize((int) DensityHelper.vp2px(SEVENTEEN, getContext()));
}

}


-----

О демоверсии:

* **Нормальная страница** написана с использованием vp.
* **Грубая адаптированная страница** создана с использованием данного решения.

При запуске проекта на реальном устройстве или эмуляторе можно увидеть, что **грубая адаптированная страница** выглядит практически одинаково, в то время как **нормальная страница** имеет значительные различия между большими и маленькими экранами.

**Нормальная страница**:

![overview](screenshot/1.png)

**Грубая адаптированная страница**:

![overview](screenshot/2.png)

## Лицензия

Copyright [2019]

   Licensed under the Apache License, Version 2.0;
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at


   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Расширить Свернуть
Apache-2.0
Отмена

Обновления (1)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/archermind-ti-rudeness.git
git@gitlife.ru:oschina-mirror/archermind-ti-rudeness.git
oschina-mirror
archermind-ti-rudeness
archermind-ti-rudeness
master