Android 4.2 on Nexus 7: canvas.drawText() not working correctly

前端 未结 3 459
故里飘歌
故里飘歌 2020-12-01 19:28

I\'m facing a serious issue with my Application, published on Google Play and apparently working fine on all versions of Android except for > 4.0.

This is a screensh

3条回答
  •  执笔经年
    2020-12-01 20:08

    I answer my own question after a lot of googling...

    The trick consist in the use of setLinearText(true) for the Paint object used for drawing the text. Now, everything looks great.

    paint = new Paint();
    paint.setAntiAlias(true);
    paint.setColor(color);
    paint.setTextSize(size);
    paint.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
    paint.setTextAlign(Align.CENTER);
    paint.setLinearText(true);
    

    Here the link that saves my day:

    http://gc.codehum.com/p/android/issues/detail?id=39755

    I hope it can help someonelse.

    The text is not rendered at the best yet:

    enter image description here

    Edited (14/01/2013)

    I'm still facing a kering problem (only on 4.2.1). Please see my other question here:

    Android 4.2.1 wrong character kerning (spacing)

    Edited (05/02/2013)

    I see another projects has the same problem. Look at the link below:

    http://mindtherobot.com/blog/272/android-custom-ui-making-a-vintage-thermometer/

    If you run the sample on Nexus 4.2.1 (or in the simulator Android 4.2) you get the same "strange" text...

    Edited (20/02/2013)

    Found a workaround that not uses setLinearText(true), look here:

    Android 4.2.1 wrong character kerning (spacing)

提交回复
热议问题