Android Canvas - 在所有屏幕分辨率上使用drawText将文本定位在同一位置
我似乎无法将文本放置在不同分辨率的屏幕上的相同位置。问题是文本是浮动的,它不是任何布局类型控件的一部分。
我尝试以与屏幕尺寸相比的相对单位来定位文本。例如,我将其放在 X 轴上的 50% 和 Y 轴上的 67.89%。尽管如此,文本在不同分辨率的屏幕上显示在不同的位置。
因此,我陷入了对某些分辨率的近似位置的困境,而且这很快就会变得混乱。
如何在画布上精确定位与 DPI/屏幕尺寸相同的位置?
I can't seem to get text positioned in the same places on screens of different resolution. The problem is the text is floating, it's not part of any layout type of control.
I try to position the text in relative units compared the screen size. For example, I put it at 50% on the X and 67.89% on the Y axis. Despite that, the text appears in a different location on different resolution screens.
So I'm stuck approximating the location for certain resolutions and this gets messy really fast.
How can I pin point a location on a canvas that is the same spot despite the DPI / screen size?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 DisplayMetrics 计算距离。例如,如果您始终希望文本距左侧和顶部 1.5 英寸。
这适用于您在其上绘制的任何视图或位图。
Use DisplayMetrics to calculate the distance. For example if you always want the text to be 1.5 inches from the left and top.
This will work with any View or Bitmap you drawing on.
有关总体显示密度(以及其他指标)的信息可在 DisplayMetrics 类中找到。您可以这样检索它:
http://developer.android.com/reference/ android/util/DisplayMetrics.html
您可以缩放所有坐标以适应屏幕密度,如下所示:
Information about the overall display density (as well as other metrics) is available in the DisplayMetrics class. You can retrieve it like this:
http://developer.android.com/reference/android/util/DisplayMetrics.html
You can scale all coordinates to account for screen density like this: