【问题标题】:how to draw 2 centimeters long line on screen in adobe air如何在adobe air的屏幕上绘制2厘米长的线
【发布时间】:2013-07-27 02:37:57
【问题描述】:
我需要在 Adobe Air 应用程序的屏幕上绘制 2 厘米长的线。我不知道该怎么做!
解释:
我从另一个应用程序获取参数说 x 厘米,该参数以厘米为单位。
我需要在距离屏幕顶部 x 厘米处画一个圆圈。
最好的问候
【问题讨论】:
标签:
apache-flex
air
flex4
【解决方案1】:
如果我没记错的话,您将无法在桌面上执行此操作,因为 AIR 始终为屏幕返回 72DPI(不过,我在这一点上可能不正确)。不过,在移动设备上执行此操作相当容易,前提是 AIR 返回正确的 DPI(我相信,在 AIR 3.3 之前,视网膜 iPad 没有返回正确的 DPI)。
基本上,您只需乘以 DPI 即可将英寸转换为像素。
var dpi:Number = Capabilities.screenDPI; //unnecessary to save local version, just easier to reference
var heightCM:Number = 5;
var widthCM:Number = 5;
var widthPixels:Number, heightPixels:Number;
var heightIn:Number = cmToInches( heightCM );
var widthIn:Number = cmToInches( widthCM );
widthPixels = widthIn * dpi;
heightPixels = heightIn * dpi;
function cmToInches( value:Number ):Number {
return value * .393701;
}
这需要一个以厘米为单位的大小(我为高度和宽度而构建,但您可以根据需要调整它),将其转换为英寸,然后将其转换为像素。你显然想把它变成一个简洁的静态 Util 方法,但它会成功。
如果您愿意,我去年创建了一个 Flex 应用程序来尝试了解 AIR 如何处理 DPI 差异。它只是使用屏幕上的滑块在屏幕上绘制一个特定大小的红色矩形来确定大小(以英寸为单位)。我在工作中没有它,但我可以在回家后发布代码。
同样,我不相信这将在桌面应用程序中起作用,因为 AIR 总是报告 72 DPI。我希望我是错的,但我不相信我是。