カスタム書体でTypefaceSpanやStyleSpanを使用するにはどうしたらいいですか?
2023-10-12 10:41:56
質問
このような方法が見当たりません。可能でしょうか?
どのように解決するのですか?
notme は本質的に正しい考えを持っていますが、与えられた解決策は "family" が冗長になるため、少しハチャメチャです。また、TypefaceSpan は Android が知っている特別なスパンの 1 つであり、ParcelableSpan インターフェイス (notme のサブクラスは適切に実装されておらず、実装することも不可能) に関して特定の動作を期待するため、若干不正確です。
よりシンプルでより正確な解決策は
public class CustomTypefaceSpan extends MetricAffectingSpan
{
private final Typeface typeface;
public CustomTypefaceSpan(final Typeface typeface)
{
this.typeface = typeface;
}
@Override
public void updateDrawState(final TextPaint drawState)
{
apply(drawState);
}
@Override
public void updateMeasureState(final TextPaint paint)
{
apply(paint);
}
private void apply(final Paint paint)
{
final Typeface oldTypeface = paint.getTypeface();
final int oldStyle = oldTypeface != null ? oldTypeface.getStyle() : 0;
final int fakeStyle = oldStyle & ~typeface.getStyle();
if ((fakeStyle & Typeface.BOLD) != 0)
{
paint.setFakeBoldText(true);
}
if ((fakeStyle & Typeface.ITALIC) != 0)
{
paint.setTextSkewX(-0.25f);
}
paint.setTypeface(typeface);
}
}
関連
-
[解決済み] android.os.NetworkOnMainThreadException' を修正するにはどうすればよいですか?
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] JavaScriptで要素のクラスを変更するにはどうすればよいですか?
-
[解決済み] どのラジオボタンが選択されているかをjQueryで知るにはどうしたらよいですか?
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
-
[解決済み] ページを再読み込みせずにURLを変更するにはどうすればよいですか?
-
[解決済み] 箇条書きのない順序なしリストが必要です。
-
[解決済み] How do I style a <select> dropdown with only CSS?
-
[解決済み] Android - Snackbar vs Toast - 使い方と違い。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Androidツールバーのセンタータイトルとカスタムフォント
-
[解決済み] SDカードからファイルを削除する方法を教えてください。
-
[解決済み] wrap_contentでRelativeLayoutがフルスクリーンになってしまう
-
[解決済み] 非ActivityクラスでContextを取得する [重複].
-
[解決済み] APKが署名済みかデバッグビルドかを確認するには?
-
[解決済み] 非推奨のandroid.support.v4.app.ActionBarDrawerToggleの置き換え方法
-
[解決済み] google-services.jsonって実際何してるの?
-
[解決済み] 文字列リソースにHTML?
-
[解決済み] 複数のフォントや文字サイズを持つ文字列を作成するためのSpanableStringBuilder 例?
-
[解決済み] Spannableオブジェクトのフォントをカスタムフォントで設定する方法