Клавиши клавиш размыты на пользовательской клавиатуре, а специальные клавиши супер четкие - PullRequest
0 голосов
/ 31 декабря 2018

Я лингвист, а не программист.С помощью примера, нескольких книг и этого форума я создал пользовательскую клавиатуру для языка меньшинства и сумел превратить фон из уродливого черного в пользовательские цвета.

Теперь я заметил, что буквенные клавиши(например, «a», «ǝ», «b») на клавиатуре выглядят размытыми.И я заметил это только потому, что символы на «специальных клавишах» выглядят очень четкими.Поэтому, пожалуйста, смотрите мой скриншот ниже:

Я не делал никаких трюков с «текстом» на клавишах.Я не предоставил специальный шрифт;Я предполагаю, что мое приложение для клавиатуры применяет системный шрифт по умолчанию, такой как Noto.Для этого языка доступны все «специальные символы», такие как ɖ, Ɖ, ŋ, Ŋ, ǝ, Ǝ, ɛ, Ɛ, ɩ, Ɩ, ɔ, Ɔ, ʊ,,, они отображаются хорошо (только размытые).Я перечислю их здесь, чтобы показать, почему этому языку нужна настраиваемая клавиатура.Этот вопрос относится (только) к нескольким тысячам пользователей WhatsApp, Facebook и Android.

Вот скриншот с «обычного» телефона: нет специального системного шрифта, нет рута, обычный Android 6.0, разрешение экрана 1280 x720, снимок экрана, снятый встроенным инструментом и затем масштабированный до 400% для вас в GIMP (без какой-либо интерполяции, конечно) и сохраненный в формате PNG без потерь.

Обратите внимание, что «специальные символы» имеют некоторые разумныеналожение псевдонимов, где это необходимо (закругленные углы и диагонали) и то, как вертикальные сокращения на «ŋ», «q» и «1» показывают, что ненужное сглаживание (?) применяется ко всем буквам ,Это поведение одинаково для всей клавиатуры: все буквы размыты , а все символы четкие .

screenshot scaled to 400%

Я могу воспроизвести эту проблему на нескольких разных телефонах (на реальном оборудовании), например на Android 4.4.2 с экраном 800 x 480 px, он выглядит еще хуже.

Обновление 1: из комментария пользователя мне предложили пойти и еще раз взглянуть на мои "специальные символы", такие как caps-lock и keyboard-hide (как показано на скриншоте).Я был удивлен, обнаружив, что это просто png-файлы, и у меня есть много таких в подпапках drawable-подпапок, как drawable-xhdpi от 24x24px до 96x96px.Я получил их от некоторых публичных наборов иконок Google много недель назад.Так что, если бы я взял на себя труд сделать четкие png-изображения для каждого из моих 4х39 ключей для каждого из 6 различных размеров экрана (936 файлов для тех читателей, которые не могут переместить один из них, прежде чем это выяснить), я быпо крайней мере, обходной путь грубой силы, но на самом деле это не ответ на вопрос «где и почему зло размыто?».

«Растущее растровое изображение» в мире Android, где первые телефоны (я думаю, что в Android 8 он доступен) наконец-то получают векторные рисунки, не кажется правильным.Кто знает, могут быть экраны, которые будут зомби на этих PNG 24x24px или 96x96px и будут рендериться даже хуже, чем то, что я вижу на моем оборудовании ...: 1 etadpU

Теперь я передам свои данные,и, пожалуйста, кричите, если хотите посмотреть больше.

Из моего файла \ app \ src \ main \ res \ xml \ qwerty.xml Я дам вам строки, которые отображаются вскриншот плюс вступление:

<?xml version="1.0" encoding="utf-8"?>

<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
    android:keyWidth="10%p"
    android:horizontalGap="0px"
    android:verticalGap="0px"
    android:keyHeight="@dimen/key_height"
>


<Row>
    <Key android:codes="119" android:keyLabel="w" android:keyEdgeFlags="left"/>
    <Key android:codes="331" android:keyLabel="ŋ" android:popupKeyboard="@xml/keyboard_popup_template" android:popupCharacters="ŋɲ"/>
    <Key android:codes="99,231" android:keyLabel="c" android:popupCharacters="cç©" android:popupKeyboard="@xml/keyboard_popup_template"/>
...
</Row>

<Row>
    <Key android:codes="-1" android:keyIcon="@drawable/baseline_keyboard_capslock_black_24"
            android:keyWidth="15%p" android:isModifier="true"
            android:isSticky="true" android:keyEdgeFlags="left"/>
    <Key android:codes="113" android:keyLabel="q"/>
...   
</Row>

<Row android:rowEdgeFlags="bottom">
    <Key android:codes="-3" android:keyIcon="@drawable/baseline_keyboard_hide_black_24"
            android:keyWidth="15%p" android:keyEdgeFlags="left"/>
    <Key android:codes="-2" android:keyLabel="123" android:keyWidth="10%p"/>

</Row>

А вот и мой \ app \ src \ main \ res \ layout \ input.xml :

<?xml version="1.0" encoding="utf-8"?>

<org.gasana.android.aniikeyboard.LatinKeyboardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/keyboard"
    android:layout_alignParentBottom="true"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:keyBackground="@drawable/samplekeybackground"
    android:keyTextColor="#000000"
    android:popupLayout="@layout/popup"
/>

Мой фон не является растровым изображением, но определен в формате XML, вот "обычный" (не нажатый) файл \ app \ src \ main \ res \ drawable \ normal.xml , который вы видите примененнымна скриншоте:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke android:width="1dp" android:color="#A1B7F7" />
    <solid android:color="#C7D4FA"/>
</shape>

Я видел в этом другом вопросе, что размытие может быть связано с сглаживанием и выравниванием.Так что теперь мне нужна помощь, пожалуйста, чтобы проверить, является ли это моей проблемой в Android-контексте, и где это происходит, и как я могу это исправить:

Размытый растровый / встроенный текст при прокрутке в TextField?(Flash / AS3)

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

...