我正在做一些研究,制作一款能够扩展其图形资源的游戏,以适应它所使用的任何设备的DPI。
为了做到这一点,我希望能够查询设备的DPI,以适当地扩展资产。
这是一款2D游戏,艺术风格非常适合任意缩放。
我将如何处理res / dpi组合:
iPhone / iTouch,320x480(163 dpi) - 文字正常尺寸
iPhone4,640x960(326 dpi) - 文字将是两倍大
iPad,为768x1024(132 dpi) - 文本可能会限制在某个最小尺寸,以利用更大的屏幕空间。
那么,在iPhone OS上,有没有办法查询屏幕的DPI?
(作为旁注 - 这在Android设备上是否可行?)
答案 0 :(得分:1)
您可以使用DisplayMetrics类在Android中获取此信息。
答案 1 :(得分:1)
我不确定是否有直接获得DPI的方法,因为您通常不需要知道它。 UIScreen类确实暴露了比例因子。对于iPhone< = 3GS和iPad,它应该是1.0,对于iPhone 4,它应该是2.0。
视力编译:
UIScreen *theScreen = [UIScreen mainScreen];
float scaleFactor = 1.0f;
if ([theScreen respondsToSelector:@selector(getScale)]) {
scaleFactor = theScreen.scale;
}
// use scaleFactor to determine size of fonts/whatever
但是,针对不同屏幕分辨率实施新操作系统的方式意味着您通常不需要根据DPI进行自定义缩放。像图像这样的东西要么按比例放大,要么会自动选择一个特别命名的高分辨率图像,并且绘图操作也会自动处理(就像绘制1点线现在在Iphone 4上绘制2px线)。可以类似地处理字体,我不认为我遇到任何字体特定的。阅读有关信息的新文档: