【问题标题】:Letter keys blurred on custom keyboard while Special keys super crisp自定义键盘上的字母键模糊,而特殊键超级清晰
【发布时间】:2019-05-28 00:15:24
【问题描述】:

我是语言学家,不是程序员。在一个例子、几本书和这个论坛的帮助下,我为少数民族语言创建了一个自定义键盘,并成功地将背景从难看的黑色变成了自定义颜色。

现在我注意到键盘上的字母键(如“a”、“ǝ”、“b”)看起来很模糊。我只注意到,因为“特殊键”上的符号看起来超级清晰。所以请看我下面的截图:

我没有对按键上的“文本”做任何技巧。我没有提供特殊字体;我猜我的键盘应用程序正在应用像 Noto 这样的默认系统字体。对于这种语言,可以使用所有“特殊字符”,如 ɖ、Ɖ、ŋ、Ŋ、ǝ、Ǝ、ɛ、Ɛ、ɩ、Ɩ、ɔ、Ɔ、ʊ、Ʊ,它们呈现良好(仅模糊)。我在这里列出它们以说明为什么这种语言确实需要自定义键盘。这个问题与(仅)数千名 WhatsApp、Facebook 和 Android 用户有关。

这是来自“普通”手机的屏幕截图:没有特殊的系统字体,没有 root,正常的 Android 6.0,屏幕分辨率 1280 x 720,屏幕截图由内置工具截取,然后在 GIMP 中为您缩放到 400%(没有当然是任何插值)并保存为无损 PNG。

请注意“特殊符号”如何在需要的地方(圆角和对角线)进行一些合理的抗锯齿,以及“ŋ”、“q”和“1”上的垂直向下笔划如何表明存在 un - 需要对所有字母应用抗锯齿(?)。这种行为在整个键盘上是一致的:所有字母模糊,而所有符号清晰

我可以在几部不同的手机(真实硬件)上重现此问题,例如在具有 800 x 480 像素屏幕的 Android 4.4.2 上,它看起来更糟。

更新 1:从用户评论中提示我去看看我的“特殊字符”,如大写锁定和键盘隐藏(如屏幕截图所示)。我惊讶地发现这些只是 png 文件,而且我在 drawable-subfolders 中有很多这些文件,比如 24x24px 到 96x96px 的 drawable-xhdpi。几周前,我从一些公开的谷歌图标中得到了它们。因此,如果我不厌其烦地为我的 4 x 39 键中的每一个为 6 种不同的屏幕尺寸(936 个文件供那些在弄清楚这一点之前无法移动的读者提供 936 个文件)制作清晰的 png 图像,那么我会有至少是一种蛮力解决方法,但并不是真正回答“邪恶模糊的地方和原因?”。

Android 世界中的“Going bitmap”在第一部手机(我相信从 Android 8 开始可用)终于获得矢量可绘制对象的情况下感觉不对。谁知道呢,那里的屏幕可能会在那些 24x24px 或 96x96px PNG 上变成僵尸,并且渲染得比我在硬件上看到的还要糟糕......: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-Context 中的问题,它发生在哪里以及如何解决它:

Blurred bitmap/embedded text when scrolling in TextField? (Flash/AS3)

我已准备好引用更多代码并回答您的后续问题。请帮助我更接近问题。谢谢。

【问题讨论】:

  • 我不熟悉开发自定义键盘,我只注意到一件事——外观清晰的键有一个 keyIcon 分配给它们,它(可能)是一个可绘制的矢量。但我不认为您必须为每个普通键提供一个图标,因此这种观察可能用途有限且有用。
  • @Ridcully 哎呀,我差点对你撒谎(并且不得不删除我的第一个回复)。我查了一下,试图编辑我的问题,并想展示一个“特殊字符向量文件”的例子。我惊讶地发现它只是一个不起眼的 png 文件。将编辑我的问题。这很有帮助!
  • 不客气。但是,我认为没有必要为每个键提供一个可绘制对象......此外,弹出字符是否也呈现模糊?因为对于那些,我认为您甚至无法提供可绘制对象。
  • @Ridcully 我刚刚再次检查:是的,弹出窗口也很模糊。没有测量但肉眼看起来一样。对我来说并不奇怪,因为它们可能是通过相同的技术渲染的。

标签: android android-softkeyboard text-rendering


【解决方案1】:

我在使用 KeyboardView 时遇到了同样的问题。我认为在这种情况下,LatinKeyboardView 也可能会有所帮助。

在我的例子中,我在 KeyboardView 属性中添加了 shadowRadius

android:shadowRadius="0.0"

KeyboardView: android:shadowRadius

【讨论】:

  • 谢谢分享。我一有时间就会去看看——刚搬到海外,忙得不可开交。如果这有帮助,我会在这里提供反馈。
猜你喜欢
  • 2014-02-18
  • 1970-01-01
  • 2015-11-10
  • 1970-01-01
  • 2019-05-26
  • 2012-09-12
  • 2010-12-03
  • 1970-01-01
  • 2015-09-19
相关资源
最近更新 更多