私はペイントを初期化していた、そしてそれがテキストサイズので、のようなものです設定した場合:setTextSize()は密度に依存しませんか?
はString text = "Hello"
canvas.drawText(text, (screenWidth/13), (screenHeight/5), Paint);
テキストが同じで、最大表示されるでしょう:
Paint = new Paint();
Paint.setAntiAlias(true);
Paint.setARGB(255, 255, 0, 0);
Paint.setTextSize(screenWidth/100);
//screenWidth is the width of the screen in pixels given via display metrics.
そして、そのようなキャンバスにテキストを描画相対的なスポットは画面のメトリックに関係なく同じ相対的なサイズですか?私は1台のデバイスしか持っていないので、私のマルチコアマシンではエミュレータがうまく動かないので尋ねます。
これまでは、バックグラウンド上にテキストを書き込んだビットマップを使用していましたが、メモリ使用量がかなり増えています。ロードされるビットマップの数を減らすことを検討しています。
私の他の選択肢は、テキストを透明な背景のビットマップとして保存し、それを単一のビットマップの背景に重ねることです。しかし、実際には1つのビットマップを作成しているだけで、格納されているすべてのビットマップの合計サイズを小さくすると、生産性が半分になります。私は最終的にオブジェクトのライフサイクルをよりコントロールしたいと思うので、このアイデアは気に入らず、これはそれほど効果的ではありません。
また、テキストをキャンバスに描画できるように、テキストにスタイルを追加する方法(あらかじめ作成されたDrawables以外の複雑なフォントや色のパターンなど)がありますか? (できるだけ安いように)