4

Android のキャンバスにアンチエイリアシングなしでテキストを描画しようとしています。使用したいフォントは、PC の C:\windows\fonts ディレクトリからアプリの assets ディレクトリにコピーしたファイル cour.ttf です。

私はこのコードを使用しています:

paint.setColor(Color.BLACK);
paint.setTypeface(Typeface.createFromAsset(getAssets(),"cour.ttf"));
paint.setTextSize(20);
paint.setAntiAlias(false);
canvas.drawText("ABCDE abcde 12345 -+/#.",100,100,paint);

ただし、 setAntiAlias 関数は効果がないようです。この写真は私の結果を示しています: http://oi47.tinypic.com/35253wo.png

最初の行はアプリのスクリーンショットで、アンチエイリアシングが false に設定されています。2 行目は、アンチエイリアシングが true に設定されたアプリのスクリーンショットです。3 行目は、私が期待するものです。これは、同じフォントを使用して notepad.exe で PC から作成したスクリーンショットです。

私は何か間違ったことをしていますか、これはアンチエイリアシングをオフにしたときに期待される出力ですか? ここで達成しようとしているのは、ぼやけていないテキストをピクセル化することです。

どんな助けでも大歓迎です。

編集:私はまだ解決策を見つけていませんが、興味深いものを見つけましたandroid:hardwareAccelerated="false".アクティビティに追加すると、かなり解決しました. どうやら、これは Android 4 ではデ​​フォルトでオンになっています。ただし、削除したい (非常に明るい) 影がまだ表示されています。

ハードウェア アクセラレーションを無効にしたスクリーンショット: http://oi49.tinypic.com/aayypj.png

4

1 に答える 1

2

PC とスマートフォンではピクセル密度が異なるように見えるため、文字の見え方が異なります。電話でレンダリングされたテキストと PC でレンダリングされたテキストを比較することはできません。お使いの携帯電話のピクセル密度が高いと思いますので、アンチエイリアスの効果を確認できません。

于 2012-05-08T17:17:48.107 に答える