在 android 4.3+ 的 textview 中缺少一些字母和数字

Posted

技术标签:

【中文标题】在 android 4.3+ 的 textview 中缺少一些字母和数字【英文标题】:missing some letters and number in textview in android 4.3+ 【发布时间】:2014-01-22 09:07:24 【问题描述】:

我使用代码在我的 monodroid 应用程序中创建了一个如下图所示的视图。虽然当我在 android 4.1 中测试应用程序时一切都是正确的,但是当我在 android 4.3 和 4.4.2 上测试它时,我遇到了下面的屏幕。我不在 android 4.2 上测试它

在文本视图中没有显示任何数字。看起来我输入了空格。还有关于一些信件。 怎么了?! android 4.3 + 中发生了什么变化?

【问题讨论】:

似乎缺少一致的字符。你提到了数字,但我也注意到字母“a”和“d”总是空白。我认为您需要在调用 setText() 以查看设置的内容之前调试或打印出这些值。此外,检查您的数据/字符串 xml 和/或提要进行编码。也许字符没有正确编码?您在任何地方都调用 String.replaceAll(regex) 吗?这会发生在所有 4.3+ 设备上,还是仅在您测试过的设备上发生? 我在2个4.3设备和一个4.4设备上测试过,都没有字母和数字 编码和调试器输出怎么样?如果您在 4.3+ 中将文本打印到控制台,字符会显示吗? @Matt 能否请您指定有关 string.replace(regex) 的信息。这是什么意思? 如果你不知道它是什么意思,你可能没有任何调用它。我想知道您是否正在对文本进行任何处理,也许 4.3+ 中的实现略有不同......您可以对“替换”进行完整的项目搜索,看看您是否正在做任何可能改变的事情这些 TextView 的行为。 【参考方案1】:

字母仍有空间,所以可能是样式的问题。

把样式改成默认,字母会出现吗?

尝试在文本视图中添加阴影并查看阴影是否存在(可能字母是透明的,或者与背景颜色相同?)

【讨论】:

【参考方案2】:

通过参考@ArieDov 评论,我发布了这个答案:

我使用的以下方法导致了问题:

public static void AddShadowEffect (TextView textview)
    
        try 
            if(RltXmlSettings.Instance.getVal ("shadow_enabled")=="1")
            
              float[] direction = new float[] 0.3f, -1.0f, 0.0f;
              MaskFilter filter = new EmbossMaskFilter (direction, 0.8f, 15f, 5f);
              textview.Paint.SetMaskFilter (filter);
              textview.Invalidate ();
            
         catch (Exception ex) 
            RltLog.HandleException (ex);
        
    

此方法的目的是添加您在问题图像中看到的阴影。我通过改变 textviews 的样式解决了这个问题,就像@Matt 所说的那样。我为我的文本视图使用了以下代码:

txtlName.SetTypeface (null, TypefaceStyle.Bold);

这解决了我的问题。

【讨论】:

以上是关于在 android 4.3+ 的 textview 中缺少一些字母和数字的主要内容,如果未能解决你的问题,请参考以下文章

Android开发-Android常用组件-Button按钮

TextViews 不显示在 Android 中

android - 在 TextView 元素的底部添加边框

如何在 Android 上将 TextView 居中?

基于android studio开发 安卓控件的基础属性1

基于android studio开发 安卓控件的基础属性1