相关疑难解决方法(0)

如何适应iPhone 4的屏幕分辨率?

根据Apple的说法,iPhone 4有一个新的更好的屏幕分辨率:

3.5英寸(对角线)宽屏多点触控显示屏
,分辨率为960×640像素,分辨率为326 ppi

这个小细节会严重影响我们的应用程序.网上的大多数演示应用程序都有一个共同点:他们认为屏幕的固定大小为320 x 480像素.因此,大多数(如果不是全部)开发人员所做的是:他们以这样的方式设计所有东西,可触摸区域(例如)50 x 50像素大.足以点击它.事情已经相对于左上方定位,以达到屏幕上的特定位置 - 让我们说中心,或者在底部的某个位置.

当我们开发高分辨率应用程序时,它们可能无法在旧设备上运行.如果他们这样做,他们将遭受4倍于任何图像大小的痛苦,不得不在内存中缩小它们.

iphone screen-resolution

27
推荐指数
3
解决办法
2万
查看次数

开发视网膜和非视网膜显示OpenGL ES

在深入了解我的下一个项目之前,我正在寻找建议.我想支持iOS现在支持的所有各种分辨率(视网膜,非视网膜iPhone和所有3个iPad).

开发人员完成这项工作最常见的方式是什么?我已经看到了类似问题,但具体问题.我正在寻找完整的包裹.IE浏览器.我想支持不同的分辨率位图字体,图像等.

是设备特定的开关,还是if语句标准?

感谢先进的所有帮助.

Ë

编辑:我从Apple发现了这个:

Blockquote如果您的应用程序使用OpenGL ES进行渲染,则现有的绘图代码应该继续工作而不进行任何更改.但是,在高分辨率屏幕上绘制时,您的内容会相应缩放,并且会显得更加模糊.块状外观的原因是CAEAGLLayer类的默认行为(用于支持OpenGL ES渲染缓冲区)与其他Core Animation层对象相同.换句话说,它的比例因子最初设置为1.0,这使得Core Animation合成器在高分辨率屏幕上缩放图层的内容.为避免出现这种块状外观,您需要增加OpenGL ES渲染缓冲区的大小以匹配屏幕大小.(使用更多像素,您可以增加为内容提供的详细信息量.)但是,为渲染缓冲区添加更多像素会影响性能,但必须明确选择支持高分辨率屏幕.

Blockquote要启用高分辨率绘图,您必须更改用于显示OpenGL ES内容的视图的比例因子.将视图的contentScaleFactor属性从1.0更改为2.0会触发对基础CAEAGLLayer对象的比例因子的匹配更改.renderbufferStorage:fromDrawable:方法,用于将图层对象绑定到渲染缓冲区,通过将图层的边界乘以其比例因子来计算渲染缓冲区的大小.因此,将比例因子加倍会使得渲染缓冲区的宽度和高度加倍,从而为您的内容提供更多像素.之后,由您来提供这些额外像素的内容.

所以我想我更新的问题是如何将上述比例因子加倍?

编辑2:

我几乎在那里......

我正在使用它来扩展我的EAGLView:

        // Adjust for retina displays
    if ([self respondsToSelector:@selector(setContentScaleFactor:)])
    {
            self.contentScaleFactor = [[UIScreen mainScreen] scale];
    }
Run Code Online (Sandbox Code Playgroud)

现在唯一的问题是原点在某种程度上搞砸了.现在显示图像根据分辨率进行缩放,但是在较大分辨率下,图像从屏幕中间开始.

请帮忙!

编辑3:解决了!!!! 我遇到了我的方向问题.

您需要确保您的翻译已更新.我用过这个:

    glTranslatef( width / 2, height /2, 0);
glRotatef(-90, 0, 0, 1);
glTranslatef(-1 * (height / 2),-1 * (width / 2),0);
Run Code Online (Sandbox Code Playgroud)

谢谢你的容貌.我希望这可以帮助别人.

cocoa-touch opengl-es ios retina-display

7
推荐指数
1
解决办法
6249
查看次数

如何处理 iPhone 屏幕尺寸/背景图像分辨率

在 iPhoneX 之后,我真的很纠结于支持所有设备的图像尺寸和命名约定。有没有办法在 4.7、5.5 和 5.8 屏幕上使用 3x 图像?全屏图像视图应该使用的确切尺寸是多少?

xcode objective-c ios iphone-x

5
推荐指数
1
解决办法
661
查看次数