Paint.setStrokeWidth()はどの単位を使用しますか?また、現在の画面密度に基づいてこの値をスケールする必要がありますか?Paint.setStrokeWidth()はどの単位を使用しますか?
これは浮動小数点値なので、ピクセル数ではありません。それは何かに相対的でなければなりません。
これは、すべてのドキュメントは、これを書いてこう述べています。
をなでるために幅を設定します。ヘアラインモードで0をストロークに渡します。ヘアラインは常にキャンバのマトリックスとは独立した単一のピクセルを描画します。
こんにちはロマンは、私がApiDemosからPathEffect例を試してみたし、ストローク幅はそこに6に設定されています。私はhdpi携帯電話の画面上の幅を測定すると9pxです。最初のストロークの幅の値に密度を乗じたように見えます。実際の幅を得るために、値を密度で割った値を与える必要がありますか? – Zzokk
私はローマンの答えが正しいとは思わない。私の現在のテストデバイス(2.0の密度を持つHTC One X)では、 '.setStrokeWidth()'は、1.5で割ったストローク幅で呼び出さなければならないことがわかりました。それから、幅はまさにそうなるはずです。そうでなければ、それは広すぎます。 1.5ファクターは、Zxokkが見つけたもの(6px vs 9px)と正確に一致します。ただし、密度が関連しているかどうかは疑問ですが、One Xは1.5ではなく2.0であるためです。したがって、この1.5因子の起源は今私を困惑させています。 – Trevor
くそー!私はこの疑問を解決するためにここに来ました。私は@Romain Guyの返事を見ました。私は「私たちは確かに答えました」と考えましたが、コメントではそれほど簡単ではないようです。 とにかくピクセルがdpからピクセルに変換されるような場所であれば、それを処理しようとしました...そして、異なる画面サイズで動作しているようです... – Sotti