gpt4 book ai didi

android - Android 4.0 上的自定义字体呈现( Ice Cream Sandwich )

转载 作者:可可西里 更新时间:2023-11-01 18:47:51 24 4
gpt4 key购买 nike

在 Android 4.0 上测试使用 Helvetica Neue 作为其主要字体的应用程序时,我发现与多个不同版本的 Android 相比,字体渲染存在不一致。我们在 2.1、2.2.2、2.3.5、3.2、4.0 和 4.0.3 上对此进行了测试,每次的结果都相同。我们还使用不同的字体二进制文件进行了这些测试,结果相同。

如有任何意见或解决方法,我们将不胜感激。

下面是示例应用程序的屏幕截图,显示了不需要的结果,第一个是 2.3.5,第二个是 4.0.3。

2.3.5

4.0.3

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

TextView textView = new TextView(this);
textView.setText("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.");
textView.setTypeface(Typeface.createFromAsset(getAssets(), "Helvetica Neue.ttf"));
textView.setTextSize(9);
setContentView(textView);
}

最佳答案

虽然我们从未找到解决 Helvetica 渲染错误的方法,但在我们向客户展示了 Galaxy Nexus 上的错误后,我们能够说服他们改用 Roboto。


更新:

public class TextViewCompat extends TextView {

public TextViewCompat(Context context) {
super(context);
setup(context, null, 0);
}

public TextViewCompat(Context context, AttributeSet attrs) {
super(context, attrs);
setup(context, attrs, 0);
}

public TextViewCompat(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setup(context, attrs, defStyle);
}

private void setup(Context context, AttributeSet attrs, int defStyle) {
setPaintFlags(getPaintFlags() | Paint.SUBPIXEL_TEXT_FLAG);
}
}

关于android - Android 4.0 上的自定义字体呈现( Ice Cream Sandwich ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9036184/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com