Skia を使用して、BlackBerry 10 プラットフォームでテキストを描画しています。Condensed または Light スタイルをフォントに適用できません。
Skia では、kNormal、kBold、kItalic、およびkBoldItalicスタイルの列挙型のみがあります。
これらのスタイルはうまく機能します
skTypeface = SkTypeface::CreateFromName("Slate Pro", SkTypeface::kNormal);
skTypeface = SkTypeface::CreateFromName("Slate Pro", SkTypeface::kBold);
skTypeface = SkTypeface::CreateFromName("Slate Pro", SkTypeface::kItalic);
skTypeface = SkTypeface::CreateFromName("Slate Pro", SkTypeface::kBoldItalic);
しかし、BB10 デバイスにも組み込まれている Slate Pro フォントのCondensedまたはLightスタイルを使用する必要があります。
これらすべての組み合わせを試してみたところ、SIGSEGVが発生しました。
skTypeface = SkTypeface::CreateFromName("SlateProLight", SkTypeface::kNormal);
skTypeface = SkTypeface::CreateFromName("Slate Pro-Light", SkTypeface::kNormal);
skTypeface = SkTypeface::CreateFromName("Slate Pro - Light", SkTypeface::kNormal);
skTypeface = SkTypeface::CreateFromName("SlatePro Light", SkTypeface::kNormal);
skTypeface = SkTypeface::CreateFromName("Slate Pro Condensed", SkTypeface::kNormal);
すっごく、システム フォントを直接読み込もうとする別の方法を試してみました。それでも、Font ファイルは存在しますが、loadedTypeface は常に NULL であり、その理由がわかりません。
QString loadedFont="/usr/fonts/font_repository/monotype/SlatePro-Light.ttf";
SkTypeface *loadedTypeface = SkTypeface::CreateFromFile(loadedFont.toUtf8().constData());
QFile targetFile(loadedFont);
if(targetFile.exists())
{
if(loadedTypeface!=NULL)
{
skTypeface = SkTypeface::CreateFromTypeface(loadedTypeface , SkTypeface::kNormal);
}
else //Fallback to Arial
{
skTypeface = SkTypeface::CreateFromName("Arial",SkTypeface::kNormal);
}
}
フォントのCondensedまたはLightスタイルの使用方法について何か考えはありますか? ありがとうございました
BB10ファイルシステムに埋め込ま Slate Pro ttfファイルの一覧
にあります /usr/fonts/font_repository/monotype/
SlatePro.ttf
SlatePro-MediumItalic.ttf
SlatePro-MediumCondensed.ttf
SlatePro-Medium.ttf
SlatePro-LightItalic.ttf
SlatePro-Light.ttf
SlatePro-Italic.ttf
SlatePro-Condensed.ttf
SlatePro-BoldItalic.ttf
SlatePro-BoldCondensed.ttf
SlatePro-Bold.ttf