所以我试图绘制文本和笔画圆,但它们在不同大小、不同像素密度的设备上看起来不同。
我已经将文本大小和笔划宽度(Paint.setStrokeWidth()
)与getResources().getDisplayMetrics().density
相乘了。我已经尝试过将其反转(1 / getResources().getDisplayMetrics().density
),然后将文本大小和笔划宽度乘以反转的密度。如何使它们在所有设备上看起来物理相同?
我建议您使用dimens
和dp
来表示笔划宽度,sp
来表示文本大小,剩下的由Android SDK来完成。
在您的dimens.xml
(示例值)中:
<resources>
<dimen name="your_stroke_width">10dp</dimen>
<dimen name="your_text_size">16sp</dimen>
</resources>
在您的代码中:
mPaint.setStrokeWidth(getContext().getResources().getDimensionPixelSize(R.dimen.your_stroke_width));
mTextPaint.setTextSize(getResources().getDimension(R.dimen.your_text_size));