1

みんな。これは、stackoverflow での最初の質問です。私の拙い英語を理解していただければ幸いです。

キャンバスに重大なアクセントを描画する際に奇妙な問題が見つかりました。私はAndroidのキャンバスにテキストを描画することをテストしてきましたが、ハードウェアアクセラレーションされたキャンバスは深刻なアクセントをほとんど描画しないことに気付きました.

コードとプロパティは次のとおりです。

  • ハードウェア アクセラレーテッド : true

    canvas.drawText("\u0E36", 100,  100, paint);
    canvas.drawText("isHardwareAccelerated : " + isHardwareAccelerated(), 150, 200, paint);
    

    上記のコードはキャンバスに \u0E36 文字を描画しません。

  • hardwareAccelerated : false、スペース付きの Unicode (または任意の文字列)

    canvas.drawText(" \u0E36", 100,  100, paint);
    canvas.drawText("isHardwareAccelerated : " + isHardwareAccelerated(), 150, 200, paint);
    

    上記のコードは、キャンバスに \u0E36 文字を描画します。

  • hardwareAccelerated : false

    canvas.drawText("\u0E36", 100,  100, paint);
    canvas.drawText("isHardwareAccelerated : " + isHardwareAccelerated(), 150, 200, paint);
    

    上記のコードは、キャンバスに \u0E36 文字を描画します。

ハードウェア アクセラレーションを true に設定すると、文字列がないとグレイブ アクセントが表示されないことに気付きました。

しかし、グレイブアクセントの直前に文字やスペースを入れると、うまくいきます。

また、ハードウェア アクセラレーションを false に設定すると、canvas はひもなしでグレイブ アクセントを描画します。

私の質問は、キャンバスがハードウェア アクセラレーションされているときに、キャンバスが重大なアクセントを描画しないのはなぜですか?

ハードウェア レンダリングとソフトウェア レンダリングに関連していると推測できます。しかし、その理由は正確にはわかりません。

ハードウェアアクセラレーションを使用してキャンバスに描きたいものは次のとおりです。タイ文字です。また、ラテン語のグレイブ アクセントもキャンバスに表示されないことがわかりました。

http://www.unicodemap.org/details/0x0E36/index.html

私の評判ポイントは0なので、彼らの写真を投稿することはできません. 皆さんが私の下手な英語を理解してくれることを願っています。

4

0 に答える 0