Захотелось мне немного поделиться своими мыслями по поводу android разработки. Возникла у меня задача сделать настройку размера шрифта в приложении, чтобы каждый пользователь сам мог подобрать под себя размер.
Изменение размера шрифта решил делать во всем приложении. Но использовать метод setTextSize в каждом activity не вариант, т.к. в один прекрасный момент появится новое поле и придется на нем вновь прописывать нужный размер. Поэтому, решением было сделать автоматическое изменение во всех местах.
Когда писал данную статью, суть заключалась в следующем: в настройках приложения хранится коэффициент увеличения шрифта. Этот коэффициент применяется на реальный размер шрифта в собственном классе, наследованным от TextView. Но Ganster41 подсказал более хорошее решение. Поэтому сперва будет описание первоначального решение, а в конце будет реализация с помощью Configuration.fontScale.
Первоначальная реализация
Начнем с того, что в нужном месте приложения добавим функционал выбора и сохранения коэффициента:
КАК УВЕЛИЧИТЬ ШРИФТ И ЗНАЧКИ НА СМАРТФОНЕ? ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ! ПОЛЕЗНАЯ НАСТРОЙКА СМАРТФОНА
float new_coef = 1.3f; //активируем параметры SharedPreferences settings = getSharedPreferences(«MyAppSett», MODE_PRIVATE); Editor value_add = settings.edit(); //заносим новый коэффициент увеличения шрифта value_add.putFloat(«size_coef», new_coef); value_add.commit();
Естественно new_coef нужно заполнять динамически. Например при выборе значения на бегунке.
Далее этот коэффициент необходимо считать в нужном месте и с помощью него изменять размер шрифта. Каждый раз считывать его из настроек приложения, при активации того или иного TextView, не совсем хорошее решение. Поэтому коэффициент будем считывать один раз при активации приложения и хранить в глобальной переменной. Для этого добавим новый класс приложения:
Далее в файле манифеста укажем новый наш класс:
После этого необходимо создать еще один класс, но уже на основе TextView:
package com.Example.Test; import android.app.Activity; import android.content.Context; import android.support.v7.widget.AppCompatTextView; import android.util.AttributeSet; import android.util.TypedValue; //класс приложения с глобальной переменной public final class MyTextView extends AppCompatTextView < //инициализация касса public MyTextView(Context context, AttributeSet attrs) < super(context, attrs); InitSize(context); >//установка нужного размера private void InitSize(Context context) < //получаем коэффициент увеличения шрифта Activity activity = (Activity) context; float koef = ((MyApp) activity.getApplication()).getSizeCoef(); float cur_size = getTextSize(); //текущий размер шрифта в пикселях //устанавливаем новый размер шрифта в пикселях setTextSize(TypedValue.COMPLEX_UNIT_PX, cur_size * koef); >>
Обратите внимание на то, что у метода setTextSize первый параметр по умолчанию = TypedValue.COMPLEX_UNIT_SP.
Что означает установку размера шрифта в sp единицах измерения. В нашем же случае используется TypedValue.COMPLEX_UNIT_PX. Этот тип необходимо указывать, чтобы задать размер шрифта в пикселях, т.к. getTextSize возвращает текущий размер в пикселях.
Как Увеличить ШРИФТ и ВСЁ на своем смартфоне! Полезная Функция телефона
В принципе все подготовительные классы готовы. Осталось в нужном месте разметки вместо TextView указать свой собственный класс MyTextView:
В итоге при открытии activity у данного текста будет изменен размер шрифта на тот, что выбрал пользователь. С EditText все делается аналогично.
Обновленная реализация
Для себя я решил использовать коэффициент размера шрифта от 0.7f до 1.45f с интервалом 0.15f. Т.е. это 6 шагов. Для выбора конкретного значения использую SeekBar.
В нужном месте приложения (в методе onCreate) реализуем обработку выбранного значения на SeekBar:
Обработку выбора значения на бегунке сделали. Теперь необходимо сохранить выбранный результат и сразу же изменить размер шрифта (например по кнопке применять):
//активируем параметры SharedPreferences settings = getSharedPreferences(«MyAppSett», MODE_PRIVATE); SharedPreferences.Editor value_add = settings.edit(); //заносим новый коэффициент увеличения шрифта value_add.putInt(«size_coef», size_coef); value_add.apply(); //устанавливаем размер шрифта в приложении Resources res = getResources(); float сoef = start_value + size_coef * step; //новый коэффициент увеличения шрифта Configuration configuration = new Configuration(res.getConfiguration()); configuration.fontScale = сoef; res.updateConfiguration(configuration, res.getDisplayMetrics());
Теперь при смене activity будет новый размер шрифта во всех местах приложения. Но на данный момент этот размер будет только до перезагрузки приложения. При открытии приложения произойдет установка размера шрифта того, что установлен в настройках android на устройстве. И соответственно, чтобы в приложении был нужным нам размер, необходимо его переназначить. Для этого мы и сохраняем коэффициент в параметры приложения:
По умолчанию используется значение 2, т.е. в моей формуле это коэффициент увеличения шрифта равный 1 (0,7 + 0,15 * 2 = 1). Данный класс необходимо прописать в манифесте:
В итоге при открытии приложения будет изменен размер шрифта во всех местах. Свою реализацию переделал с первого способа на второй, что позволило не добавлять собственные классы для TextView, EditText и т.п.
Всем спасибо за внимание.
- android
- шрифт
- Configuration.fontScale
Источник: habr.com
ChatGPT на Русском: Чатбот от OpenAI
ChatGPT — это языковая модель на базе искусственного интеллекта, разработанная OpenAI. Он был обучен на огромном количестве текстовых данных из Интернета и может генерировать текстовые ответы, подобные человеческим, на заданную подсказку. Он может отвечать на вопросы, вести беседы на самые разные темы и генерировать творческие тексты.
Что такое ChatGPT
ChatGPT — это своего рода компьютерная программа, которая может понимать человеческий язык и генерировать собственный текст в ответ на него. Думайте об этом как об очень умном роботе, с которым вы можете поговорить, и он ответит вам.
Способ работы ChatGPT довольно сложен, но в основном он обучался на огромном количестве текстовых данных из Интернета. Эти данные включают такие вещи, как книги, статьи и веб-сайты, поэтому ChatGPT многое узнал о том, как люди используют язык.
Когда вы даете ChatGPT какой-либо текст для работы, он использует то, что он узнал из этого массивного набора данных, чтобы попытаться предсказать, какой текст должен быть следующим. Он делает это, разбивая входной текст на более мелкие части и используя сложную математику, чтобы выяснить, какой должна быть наиболее вероятная следующая часть.
Затем, как только ChatGPT предсказал, какой должна быть следующая часть текста, он генерирует этот текст и использует его, чтобы продолжать прогнозировать, что будет дальше. Этот процесс продолжается до тех пор, пока ChatGPT не сгенерирует полный ответ на исходный текст.
Источник: chatgpt.org
Как улучшить изображение нейросетью: десять сервисов Статьи редакции
Что делать, если картинка плохая и всё размыто — бесплатно и платно.
10 показов
1507K открытий
Полностью бесплатный сервис компании Zyro позволяет обрабатывать фотографии с помощью глубоких свёрточных нейросетей. Сайт не разрешает самому выбрать настройки улучшения изображения и увеличивает качество в автоматическом режиме в два раза.
Бесплатный онлайн-сервис для повышения качества не только фотографий, но и рисунков. ПО на основе глубоких свёрточных нейросетей позволяет убрать шумы и увеличить размер изображений в два раза без потери качества. При обработке снимка предлагается выбрать его тип: рисунок или фотография.
Онлайн-сервис улучшает качество фотографий до 16 раз с помощью технологий искусственного интеллекта. При обработке изображений Let’s Enhance корректирует их цвет и тон, а также убирает шумы. На сайт можно загрузить сразу несколько изображений и запустить их одновременную обработку.
Разработчики утверждают, что Let’s Enhance работает на основе глубоких свёрточных нейросетей. В бесплатной версии пользователи могут улучшить до четырёх раз качество пяти фото. Подписка на неограниченную обработку 100 изображений стоит $9 в месяц, за обработку 300 фотографий придётся заплатить $24, а за 500 — $34.
Сайт предоставляет пользователям шесть онлайн-инструментов на основе ИИ:
- для улучшения качества до восьми раз;
- повышения резкости;
- удаления шумов;
- улучшения цвета и контрастности;
- ретуши лиц;
- удаления фона.
В бесплатной версии AI Image Enlarger позволяет обработать до восьми изображений в месяц. Премиальная подписка стоит $9, корпоративный пакет — $19.
Онлайн-сервис, в котором можно обработать сразу несколько изображений одновременно. В бесплатной версии сайт позволяет улучшить качество пяти снимков до четырёх раз. Ежемесячная подписка на обработку 100 изображений обойдётся пользователю в $9, на 500 и 1000 — в $39 и $69 соответственно.
Изображения после обработки доступны в разрешениях 6250 x 4000 px, 12020 x 2080 px и 5000 x 5000 px.
Разработчики утверждают, что Image Enlarger может улучшить качество изображения с помощью ИИ до восьми раз без потери качества. Все загруженные на сайт фотографии удаляются спустя 24 часа после обработки.
В сервисе можно бесплатно улучшить качество трёх фотографий. Подписка стоит $9,9 за 200 изображений и $19,9 за 500 изображений.
Сайт увеличивает фотографии в два-четыре раза и предоставляет доступ к своему API по цене от $250 за месяц. Сервис можно бесплатно использовать для обработки трёх изображений, дальше придётся платить по $0,2 за один снимок. За $9 можно обработать 100 изображений в месяц, за $99 — неограниченное количество фото.
icons8 AI позволяет увеличивать фотографии до разрешения 3000×3000 px.
Онлайн-сервис предлагает улучшить качество изображений до 16 раз за счёт увеличения пикселей в четыре раза по вертикали и горизонтали с помощью ИИ. Photo Refiner также очищает фотографий от шума. На обработку снимков сервису требуется 10 секунд.
Улучшения качества одной фотографии в Photo Refiner стоит $4,99. У сервиса есть несколько вариантов подписки:
- 200 снимков в месяц за $48;
- 500 снимков в месяц за $98;
- 3000 снимков в месяц за $297;
- 5000 снимков в месяц за $450;
- 10 тысяч снимков в месяц за $8000.
При подписке пользователь получит доступ к другим средствам обработки изображений от Crea8tiveAI.
Этот онлайн-сервис позволяет бесплатно увеличивать снимки до восьми раз, убирать шум с фотографий и сжимать изображения. При оплате подписки Upscale Pics разрешает пользователю загружать сразу несколько файлов для обработки и улучшать разрешение до 20000 x 20000 px.
Подписка стоит $10 в месяц или $60 в год.
Сервис для обработки изображений с помощью технологий искусственного интеллекта, который может работать как отдельная программа или плагин для Adobe Photoshop. В основе сервиса лежат нейронные сети, обученные на «миллионах изображений» разных видов — от пейзажей и портретов до архитектуры. Gigapixel AI стоит $99,99, на сайте можно ознакомиться с бесплатной демо-версией перед покупкой.
51 комментарий
Написать комментарий.
Статья была бы ценной, если бы были примеры ДО и ПОСЛЕ.
Развернуть ветку
Развернуть ветку
2 комментария
Комментарий удален модератором
Развернуть ветку
Вчера как раз попробовал Let’s Enhance. Не ожидал даже, что так круто может увеличить и при этом даже улучшить качество исходной картинки. За подборку благодарю!
Развернуть ветку
Original -> Enhance -> Final
Развернуть ветку
Waifu2x можно на комп установить при желании и требуемом железе https://github.com/lltcggie/waifu2x-caffe
waifu2xのCaffe版. Contribute to lltcggie/waifu2x-caffe development by creating an account on GitHub.
Развернуть ветку
это не бинарник…
ещё как-то надо компилировать?
Развернуть ветку
1 комментарий
На ПК есть ещё cupscale. Позволяет использовать сторонние модели, и даже интерполировать изображение между ними. Компилировать не нужно, есть даже GUI.
https://github.com/n00mkrad/cupscale
Image Upscaling GUI based on ESRGAN. Contribute to n00mkrad/cupscale development by creating an…
Развернуть ветку
Topaz Gigapixel AI — беспонтовый шлак ! Увеличить резкость можно и в фотошопе , а как «улучшитель» фото это совершенно бесполезная программа.
Развернуть ветку
Чушь, пользую топаз уже больше 2ух лет, отличное автономное прикладное ПО для обработки фото, стоит понимать что топаз в отличие от большинства присутствующих здесь сервисов является программой, которую ставишь на винду и все, можно и пиратку для знакомства найти. Второе, отличие аогоритма, топаз не ищет в сети аналоги и не складывает их в еидиный профиль фото выдавая это за исходное фото в лучшем качестве и высоком разрешении, топаз работает с исходником и только с ним, не цепляет ничего из сети, дорисовывает и убирает шумы, стоит понимать только что из мыла разрешением 25х25px ничего путного не вытянешь, он отлично подтягивает фото в диапазоне разрешений 300-700 px по одной из сторон и выше соответственно. Я использую его для подготовки макетов среднего разрешения к печати, увеличению фото текстур под прогонку и натяжку для блендера и юнити, для подтягивания качества фото заказчикам и пр. Отличная софтина, которая не требует подписки за определенное кол-во обработанного фото и не привязано к сети. У топаз есть аналогичный софт для соответствующей обработки видео, вплоть до увеличения частоты кадров.
Развернуть ветку
2 комментария
Ха-ха три раза!
Никогда в фотошопе не получится того, что делает ИИ.
Источник: vc.ru