如何根据位图分辨率设置文本大小?

3

嘿,我正在尝试将文本写入位图中,但我不知道如何设置文本大小。

我发现一些人使用密度将文本大小设置为DIP,我认为这是可以的, 但如果我在较小的图像上尝试编写文本,则文本会变得很大。

以下是我的代码:

private static final float GESTURE_THRESHOLD_DIP = 95.0f;
Resources resources = gContext.getResources();
float scale = resources.getDisplayMetrics().density;
paint.setTextSize((int) (GESTURE_THRESHOLD_DIP * scale + 0.5f));

如何将文本大小设置为与绘制大小相关?
1个回答

0

最终,我只是检查了图像的分辨率,看起来很好,并计算出高度宽度结果除以X给了我想要的数字,所以我只是将字体除以6。这种方法在某些情况下可能会失败,但比我之前的方法要好。

请有经验的人提供更好的解决方案。


你觉得这个答案不够好,为什么还标记它为最佳答案? - android developer
1
它解决了我的问题,但我认为它并不好。我写上面的原因是因为它不是一个通用的解决方案,只适用于我的情况。 - eric.itzhak
1
我明白了。我也想知道这个问题的答案。看起来很有趣。不过,我认为你应该取消选中答案,这样更多的人会关注这个问题。 - android developer
我也是这样做的:bitmap.getWidth() / 20。但这并不完美,因为如果图像很大或很小,比例似乎不同... - Denny Weinberg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接