java - Paint.setTextSize() 的参数代表什么?

标签 java android user-interface

我正在尝试编写一个与分辨率无关的 Android 游戏。我有一些文本要渲染到 Canvas 上并使用 Paint.setTextSize(...) 设置文本的大小。参数代表什么?以像素为单位的字母高度?

我也不确定如何根据屏幕的密度或尺寸设置此参数。我通常希望我的文本尽可能地填充屏幕的某个矩形(即我希望文本尽可能接近矩形的整个高度,而文本的宽度不会超出矩形)但我不是确定我会怎么做。我知道布局和 TextView 小部件会有所帮助,但由于这是一款游戏,我需要在演示中有很大的灵 active 。

最佳答案

根据经验,它是像素(真实像素,不是倾斜:我尝试了 Galaxy Tab 10.1"(mdpi) 和 240 dpi (hdpi) 的模拟器,结果几乎相同......实际上,字体是两个模拟器上的像素较小,尽管 getFontSpacing() 返回相同的数字;下面的结果是针对 Galaxy Tab 的。我正在绘制位图...我假设它与 View 的 Canvas 相同?)。

我将文本大小设置为 40,getFontSpacing() 返回 46。使用屏幕上的网格,我发现大写字母的高度大约为 29 像素高,即从“T”的顶部到“g”的底部大约有 39 个像素,而“重音 Í”顶部到“g”底部的距离为 48 个像素(含)。字体是 Typeface.defaultFromStyle(Typeface.NORMAL)

关于java - Paint.setTextSize() 的参数代表什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3569751/

相关文章:

java - 向我的基本 'Sound Adventure'游戏添加声音

java - 如何在 Spring Boot + Spring Data 中创建自定义数据源

android - 当我尝试调试时应用程序崩溃

Java Swing 绘制矩形

java - android如何处理GUI事件?

c++ - wxFileDialog 在 MyApp::OnInit() 错误中打开

c# - 我如何在基于 Android-Java 的应用程序中使用 DataTable。

c# - WIFI直连IP地址问题

android - 使用 GPUImage Android 录制视频

android - 如何从 admob 帐户中屏蔽不当广告