相关疑难解决方法(0)

Android 4.2.1错误字符字距调整(间距)

使用CanvasdrawText()方法时,我在Android 4.2.1上看到了不同的渲染.

低于4.2:

在此输入图像描述

对于Android 4.2.1(Nexux 7),我得到:

在此输入图像描述

正如你所看到的文字消费非常紧张.似乎是4.2.1中引入的字距调整问题.用于绘制文本的Paint并不特别:

titlePaint = new Paint();
titlePaint.setAntiAlias(true);
titlePaint.setColor(0xffffffff);
titlePaint.setTextSize(0.125f);
titlePaint.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
titlePaint.setTextAlign(Align.CENTER);
titlePaint.setLinearText(true);
Run Code Online (Sandbox Code Playgroud)

如果我不使用,titlePaint.setLinearText(true)我会在4.2.1上看到一个奇怪的结果,你可以看到:

Nexus 7上的Android 4.2:canvas.drawText()无法正常工作

编辑:

这个奇怪的行为已经报告给Android团队:http://code.google.com/p/android/issues/detail?id = 39755但它仍然不是"官方"问题.

编辑(2):

一些谣言声称问题是textSize <1.0f ...

user-interface android kerning android-4.2-jelly-bean

10
推荐指数
2
解决办法
3452
查看次数

Nexus 7上的Android 4.2:canvas.drawText()无法正常工作

我的应用程序面临严重问题,在Google Play上发布,并且除了> 4.0之外,显然在所有Android版本上都能正常运行.

这是我的Android 4.0 HTC手机的截图:

在此输入图像描述

这就是我在Nexus 7,Android 4.2.1(模拟器中的相同行为)上得到的结果:

在此输入图像描述

我看到每个使用的文本都有相同的行为 canvas.drawText()

用于绘制文本的Paint是:

paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(color); //some color
paint.setTextSize(size); //some size
paint.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
paint.setTextAlign(Align.CENTER);
Run Code Online (Sandbox Code Playgroud)

在logCat(4.2.1模拟器)中,我看到了很多

12-18 20:42:21.096: W/Trace(276): Unexpected value from nativeGetEnabledTags: 0
Run Code Online (Sandbox Code Playgroud)

我在清单中使用这些设置:

 <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="8" />
Run Code Online (Sandbox Code Playgroud)

layout user-interface android drawtext android-4.2-jelly-bean

7
推荐指数
1
解决办法
4947
查看次数