【问题标题】:Drawing shapes in different sizes depending on resolution根据分辨率绘制不同尺寸的形状
【发布时间】:2014-03-12 14:27:51
【问题描述】:

我正在尝试为 android 编写应用程序。
因此,我有一个 SurfaceView 类来绘制所有对象。

现在,例如,当我画一个圆时,我必须指定一个大小。
有没有办法根据屏幕分辨率和密度的大小来制作这个尺寸?
因为我在画圆时,我希望它在低分辨率设备上的大小与在高分辨率设备上的大小相同。

当绘制一个半径为 50px 的圆时,它在小屏幕上会比在大屏幕上更大。

有什么想法吗?

编辑: 我知道在创建一些布局时我可以使用密度像素。但我不是在处理布局,我是在表面视图之上绘制的。绘制类似的东西时

canvas.drawCircle(x, y, size, paint);

size 以像素为单位声明半径。 有没有办法将像素转换为密度像素?有什么方法或者类似的吗?

提前致谢

【问题讨论】:

  • 您并不真正希望它是相同的大小,而是相同的方面。因为如果尺寸是固定的 (px),那么您就会遇到密度问题,正如您自己注意到的那样。
  • 使用密度像素,而不仅仅是像素
  • 问题是在尝试绘制例如球体时,它要求我提供精确的坐标和半径。当我输入 canvas.drawCircle();它必须是作为半径的浮点数。将其声明为 5 时,它将具有 5 个像素的半径,而不是密度像素。如何在代码中将像素转换为密度像素?
  • @fadden:去检查一下,谢谢!

标签: android resolution scaling screen-resolution


【解决方案1】:

我认为您正在寻找的公式 (dip -> px) 在这里发布:

What is the correct way to specify dimensions in DIP from Java code?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-10
    • 1970-01-01
    • 2012-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多