問題タブ [staticlayout]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - AndroidのStaticLayout内でテキストを太字にする
静的レイアウトのテキストを太字にする方法はありますか? 次のコードを使用して StaticLayout を使用してテキストを設定するように、1 つの政府文書を印刷しようとしていますCanvas
。
WheregetText()
メソッドは、以下のように印刷したい文字列を返します。
ここでは、病院名のみを太字にしたいと思います。
android - AndroidでStaticLayoutはどのように使用されますか?
独自のカスタムを構築する必要があるため、キャンバスにテキストを描画する方法をTextView
学んでいます。StaticLayout
これはCanvas.drawText()
、直接使用するよりも望ましいか、ドキュメントに記載されています。ただし、ドキュメントには、その方法の例はありません。StaticLayout.Builder
それを行う新しい方法であるという漠然とした言及しかありません。
ここで例を見つけましたが、少し古いようです。
私は最終的にそれを行う方法を調べたので、以下に説明を追加します。
android - Android レイアウト: getLineBaseline、getLineDescent、getLineAscent、getLineBottom、getLineTop の意味
次のメソッドLayout
( StaticLayout
、DynamicLayout
、およびを含むBoringLayout
) のドキュメントは非常に少ないです。
getLineBaseline(int line)
getLineDescent(int line)
getLineAscent(int line)
getLineBottom(int line)
getLineTop(int line)
これらのメソッドが返す数値は正確には何ですか? それらは通常のフォント メトリック値ですか、それともレイアウト上の位置ですか?
調べるためにテスト プロジェクトを作成したので、Q&A スタイルの下に回答を投稿します。
android - 50 行を超えると、AppWidget ListView 内の StaticLayout に非表示のテキストが表示される
カスタムフォントテキストを使用して、 1人の子を保持するAppWidget
RemoteView
with があります。ListView
ImageView
これが私のコードです:
正しく動作します。ただし、テキストが 50/60 行を超えるたびに空として表示されますが、リストビューをスクロールできます (したがって、ビットマップの高さが 0 ではないため、staticLayout は空ではありません)。
もう 1 つの重要なことは、次の動作です。ウィジェットのドラッグを開始すると、テキストが表示されます。ドロップした直後に、テキストが再び消えます。
何がそのような行動を引き起こす可能性がありますか? 同様の問題に直面した誰かが助けてくれるかもしれません。
編集:
ビットマップをpngとしてキャッシュディレクトリに保存してから、メソッドで画像を設定しようとしましたsetImageViewUri
が、結果は同じです。適切な寸法の透明な画像で、ドラッグ アンド ドロップすると表示されます。