所以我试图绘制文字和描边圆圈,但它们在不同像素密度的不同尺寸设备上看起来不同。
我已经将文字大小和笔触宽度(Paint.setStrokeWidth()
)与getResources().getDisplayMetrics().density
相乘。我已经尝试将其反转(1 / getResources().getDisplayMetrics().density
),然后将文本大小和笔触宽度与反转密度相乘。如何在所有设备上使它们在物理上看起来相同?
答案 0 :(得分:0)
我建议您使用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));