在屏幕上准确调整图形尺寸

你不得不确保你的图形是72dpi的时代已经一去不复返。随着支持web的移动设备和平板电脑的涌入,出现了各种尺寸、分辨率和像素的新屏幕。现在你必须确保无论针对什么设备你的移动应用程序图形应该具有合适的尺寸。

随着Apple iPad的推出,平板电脑设备已经成为年度的主打设备。 但关键的问题是相应的设备是否新颖或是否具有持久价值。据Business Insider* 报道,在它调查的 500个iPad拥有者中,从第一次购买算起,其使用率已经提升高达80%。根据本人经验,我可以告诉你我每天大约使用一个小时iPad用于阅读和游戏。

目录

要求

预备知识:

你应该基本熟悉 ActionScript 3并且了解矢量和位图图形相关知识。

需要下列产品:

屏幕规格

既然平板电脑已经在市场占有一席之地,那么你如何为它设计应用程序呢?对于桌面系统和其它移动设备又是怎样呢?表1给出了大多数流行平板电脑的屏幕规格。

表1. 各种移动设备的规格比较


桌面
移动设备
平板电脑
屏幕尺寸 15" laptops
17" – 24" desktops
4.3" Droid X
3.7" Droid 2
3.5" Apple iPhone 4
7" Samsung Galaxy Tab
7" BlackBerry PlayBook
9.7" Apple iPad
分辨率
1024 × 768 (20%)*
1280 × 800 (higher 76%)*
480 × 854 Droid 2
480 × 854 Droid X
640 × 960 iPhone 4
1024 × 600 Samsung Galaxy Tab
1024 × 600 BlackBerry PlayBook
1024 × 768 Apple iPad
每英寸像素 72 264 Droid 2
227 Droid X
326 ppi iPhone 4G*
170 Samsung Galaxy Tab
170 BlackBerry PlayBook
133 Apple iPad
平台
Windows
Mac
Android 2.2
iOS
Android 2.2
BlackBerry Tablet OS
iOS

合理调整图形尺寸

对于桌面系统来说,你可以轻易地制作一个100像素宽、30像素高的按钮,并且确信用户能够利用鼠标指针选中它,因为其每英寸的像素(或每英寸的点数)是 72。而对于平板电脑和移动设备来说,手指替代了鼠标指针并且相应的分辨率不再是72dpi。 上述两个因素使得按钮尺寸变得极为重要。

注: 在你处理位图图形时,你必须知道 DPI越大,你的文件尺寸也将越大。参考本文的结尾部分的资源列表,以便了解关于优化图形的更多信息。

手指尺寸

如果你对成人平均指纹进行测量,则它至少为半平方英寸。 这就是为什么iOS上的图标为这样尺寸的原因。 因此,tat就是你希望的按钮尺寸。 但是,你如何能够确保在所有设备上按钮的尺寸均是半平方英寸呢?

每英寸像素

在你学会调整内容尺寸之前,你需要确保所有图形不能自动缩放:

stage.scaleMode = StageScaleMode.NO_SCALE; 
stage.align = StageAlign.TOP_LEFT;

在快速查看这些规格之后,你将发现每英寸像素(ppi)已经发生变化。为了确保一个按钮的面积总是0.5平方英寸,你应该利用0.5乘以相应的ppi(也称为dpi)。在ActionScript 3中,它应该如下所示:

next_btn.width = 133 * .5; 
next_btn.height = 133 * .5;

但你的确不需要为每种设备都进行这样的计算。 幸运的是,在Adobe Flash Professional中,你可以使用 Capabilities.screenDPI 属性来确定设备的屏幕 DPI。 然后,只需将其乘以0.5即可:

next_btn.width = Capabilities.screenDPI * .5; 
next_btn.height = Capabilities.screenDPI * .5;

为了避免太以美国为中心的做法,在你已知以毫米而不是以英寸为单位表示尺寸的情形下,这里给出了一种确定你的按钮像素尺寸的代码版本:

next_btn.width = Capabilities.screenDPI * (mm / 25.4);
next_btn.height = Capabilities.screenDPI * (mm / 25.4);

始终不忘测试

由于Android 2.2 不是为平板电脑设备设计的版本—尽管市场上存在各种平板电脑设备(例如 Samsung Galaxy Tab)—但当实际分辨率为170时,Capabilities.screenDPI 属性将给出一个错误的分辨率240。因此你必须进行额外的核查并且进行相应的更改:

if (Capabilities.manufacturer == "Android Linux" && Capabilities.screenResolutionY == 1024) 
{ 
next_btn.width = 85; 
next_btn.height = 85; 
}
        

图 1 给出了在三种设备尺寸合适的按钮:这三种设备是Droid 2、iPad和 Samsung Galaxy Tab。

在三种设备上尺寸合适的Play 按钮.

图1. 在三种设备上尺寸合适的Play 按钮

下一步阅读方向

如需找到关于 Capabilities.screenDPI 属性的更多信息,请查看下列文章和参考:

在你处理位图图形时,你必须知道 DPI越大,你的文件尺寸也将越大。 请参看我的下列视频以便了解关于优化图形的更多信息:

此外,你也可以通过使用Adobe Fireworks CS5等工具了解关于优化图形的更多信息:


根据 Creative Commons Attribution-Noncommercial 3.0 Unported License授予本作品许可。

关于作者

Paul Trani是Adobe的一名技术传教士。他在Adobe TV上主持一个系列视频教程*, 演示如何将Adobe Flash Professional集成到设计工作流中,从而在Web和移动领域发挥更大作用。Paul同时积极在各种会议和用户组中提供专家建议和指导。他的博客是: paultrani.com*.


原文链接:http://www.adobe.com/cn/devnet/devices/articles/sizing-graphics-across-screens.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现实时0.01秒快速识别屏幕上与指定图片相似位置,可以使用OpenCV的模板匹配算法,并使用一些优化技巧来提高性能。 以下是一个Python代码示例,演示如何使用模板匹配算法实现实时0.01秒快速识别屏幕上与指定图片相似位置: ```python import cv2 import numpy as np import time import pyautogui # 读取指定图片 template = cv2.imread('template.png', 0) w, h = template.shape[::-1] # 初始化屏幕截图 screenshot = np.array(pyautogui.screenshot()) screenshot_gray = cv2.cvtColor(screenshot, cv2.COLOR_BGR2GRAY) while True: # 计时开始 start_time = time.time() # 在屏幕截图上搜索与指定图片相似的位置 res = cv2.matchTemplate(screenshot_gray, template, cv2.TM_CCOEFF_NORMED) threshold = 0.9 loc = np.where(res >= threshold) for pt in zip(*loc[::-1]): # 在屏幕上标记出找到的位置 cv2.rectangle(screenshot, pt, (pt[0] + w, pt[1] + h), (0, 255, 255), 2) # 显示结果 cv2.imshow('result', screenshot) # 计时结束 end_time = time.time() print('Time elapsed:', end_time - start_time) # 检测按键 if cv2.waitKey(1) == ord('q'): break # 更新屏幕截图 screenshot = np.array(pyautogui.screenshot()) screenshot_gray = cv2.cvtColor(screenshot, cv2.COLOR_BGR2GRAY) cv2.destroyAllWindows() ``` 这段代码中,首先使用OpenCV的`imread`函数读取指定图片,然后初始化屏幕截图,并将其转换为灰度图像。在每次循环中,使用模板匹配算法在屏幕截图上搜索与指定图片相似的位置,并在屏幕上标记出找到的位置。然后,计算每次循环所花费的时间,并在控制台显示。最后,检测按键并更新屏幕截图。 为了提高性能,我们使用了以下优化技巧: 1. 只在每次循环开始时获取一次屏幕截图,而不是在每次搜索时都获取。 2. 在控制台显示每次循环花费的时间,以便优化算法和调整参数。 3. 使用`TM_CCOEFF_NORMED`模板匹配算法,该算法比其他算法更快。 4. 设置阈值为`0.9`,这是一种平衡速度和准确度的方法。如果需要更高的准确度,可以降低阈值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值