android 4.4中的字体问题

时间:2013-11-01 13:45:05

标签: android android-4.4-kitkat

first screen second screen

今天我已经将我的android sdk更新为19 api,在测试我的应用程序时,我遇到了19 api中的一些错误:在文本视图中删除一些字体,或者它的大小有问题。

第一个屏幕,一个视图的代码:

tvBalance = new TextView(getContext());
    rlParams = new LayoutParams(frame.width, (int) (frame.heigth * zoneExtetn));
    rlParams.setMargins(frame.left, (int) (frame.top - frame.heigth * (zoneUp-0.1f)), 0, 0);
    tvBalance.setLayoutParams(rlParams);
    tvBalance.setGravity(Gravity.CENTER);
    tvBalance.setPadding(0, 0, 0, 0);
    tvBalance.setTextColor(0xffffd008);
    tvBalance.setTextSize(PokerTextSize.scaleFont(getContext(), 28));
    tvBalance.setText("$ 0 000 000 000");
    tvBalance.setTypeface(TypefaceBase.getCalibri((Activity) getContext()));
    rlMoney.addView(tvBalance);

和第二个屏幕代码:

TextView tvText = new TextView(llContent.getContext());
            llParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
            llParams.setMargins(0, 0, 0, marg*2);
            tvText.setLayoutParams(llParams);
            tvText.setTextSize(fonts[0]);
            tvText.setTextColor(articleColor);
            tvText.setText(Html.fromHtml(articleItem.getString()));
            tvText.setTypeface(TypefaceBase.getCalibri((Activity) this.getContext()));

            llContent.addView(tvText);

有人在android 4.4 kit-kat中遇到这些问题吗?

4 个答案:

答案 0 :(得分:5)

我遇到了类似的问题,并找到了这个帖子。看看是否有帮助。

Custom ttf fonts are not showing properly in TextView on Android 4.4 KitKat

编辑:

使用calibri.ttf时遇到了同样的问题。我切换到lato.ttf(可在google.com/fonts上找到),它们工作正常/看起来非常相似。

答案 1 :(得分:1)

我有同样的问题,我使用AppleLiGothic.ttf字体为我的应用程序,它就像5mb文件大小。无论如何,我已经将字体更改为Roboto-Light.ttf。我从android19 sdk数据文件夹中获取了这个字体。我认为某些字体可能不兼容,目前最好先尝试一下,直到找到哪种字体有效。

答案 2 :(得分:1)

在Android 4.4.2(Kitkat)上,

字体对我也不起作用我通过将file.ttf转换为file.otf来解决问题

remplace:

Typeface typeface = Typeface.createFromAsset(activity.getAssets(), "yourFont.ttf");
yourTextView.setTypeface(typeface);

by:

Typeface typeface = Typeface.createFromAsset(activity.getAssets(), "yourFont.otf");
yourTextView.setTypeface(typeface);

仅供参考:.otf格式适用于所有Android版本(不仅仅适用于kitkat)

答案 3 :(得分:0)

我一直在做的是将字体放在assets文件夹中并按原样加载:

Typeface typeface = Typeface.createFromAsset(activity.getAssets(), "yourFont.ttf");
yourTextView.setTypeface(typeface);

当我使用这种方法时,Kit Kat没有遇到任何问题