在 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按钮