【问题标题】:Android resolution qualifier workaroundAndroid 分辨率限定符解决方法
【发布时间】:2014-01-27 07:49:58
【问题描述】:

我明白为什么像可绘制资源这样的资源没有像素大小(分辨率)限定符,但我因此遇到了一个问题,我不知道如何使用 Open GL 解决游戏:
我不会根据屏幕尺寸改变您水平看到的宽度,以避免大分辨率或密度屏幕比小屏幕“看得更远”。这意味着在小尺寸和密度手机上覆盖一半屏幕的精灵也将在高端大平板电脑上覆盖一半屏幕。但我希望这两种情况都有不同的 PNG 文件,因为例如精灵在小型手机上为 200 像素,在平板电脑上为 600 像素。这意味着如果我使用小分辨率 png(如 256*256),则精灵质量在大屏幕上会很差,如果我使用大分辨率 pgn(如 512*512 或 1024*1024),则会过大在小型手机上消耗大量内存(一无所获)。我知道mip映射,但它实际上并没有解决这里的问题(它只是在小型手机的情况下用GPU浪费换取内存浪费)。

完美的解决方案是为像素大小(而不是英寸大小)设置资源限定符,但它们不存在。我们应该如何处理?我们是否必须假设高 DPI(或高尺寸?)设备通常具有高分辨率?我们是否必须创建“组合”限定符(如 drawable-hdpi-large)?

附加问题:假设 Open GL 始终支持高达 512*512 的纹理大小通常是一个好习惯,但现在我们可以假设大分辨率设备(我想要大 png 文件的设备)始终支持最多 1024*1024 个纹理?

【问题讨论】:

    标签: android drawable resolution


    【解决方案1】:

    Android 没有为此提供好的解决方案。创建组合限定符和复制图像,或者自己滚动一些东西(使用Resources.getDrawableForDensity 或类似方法以编程方式获取适当的资源)是您最好的选择。

    如果有一个系统可以提供许多任意像素大小的图像,并且 Android 会根据所需大小选择最接近的图像,那将是非常棒的。但似乎资源加载系统只是为可绘制对象本身设计的大小。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-26
      • 2016-07-13
      • 2016-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多