【问题标题】:Android: How to filter android phones by max texture sizeAndroid:如何按最大纹理大小过滤 android 手机
【发布时间】:2015-01-05 14:36:26
【问题描述】:

我想为我的 android 应用程序使用多个 APK。我有一个按大小(1024x1024、2048x2048、4096x4096)分组的纹理。我知道每个设备都有最大纹理大小的限制,现在我在运行时过滤纹理。问题是拥有糟糕手机的用户需要下载所有纹理(甚至是 4096x4096),所以我的应用程序的尺寸非常大。它是一种通过 android manifest 中的最大纹理大小过滤设备的方法吗?或者有什么解决办法吗?

【问题讨论】:

  • 你能描述一下你是如何下载纹理的吗?
  • 我正在使用 libgdx 中提供的 AssetManager 类。有一个方法:_assetManager.get("assetName.jpg", Texture.class);
  • 所以它们是与 apk 捆绑在一起的?
  • 是的,它们与 apk 捆绑在一起

标签: android opengl-es filter textures manifest


【解决方案1】:

这是一种通过 android manifest 中的最大纹理大小过滤设备的方法吗?

抱歉,您无法添加任何过滤器。

或者有什么解决方法吗?

由于资产已经捆绑在 apk 中,因此您无法从资产文件夹中删除它们,因为它们是只读的。请参阅“assets/ 中的文件没有给定资源 ID,因此您只能使用 AssetManager 读取它们。”来自http://developer.android.com/guide/topics/resources/providing-resources.html

您可以让您的应用/游戏在应用首次启动时下载适当的纹理包。

【讨论】:

  • 我可以制作 3 个 android 项目 - 每个项目都有不同的资产,但我不知道如何过滤它们。是否有任何屏幕尺寸和屏幕密度属性的组合来匹配 GL_MAX_TEXTURE_SIZE?
  • 不,据我所知,最大纹理大小来自设备上的图形芯片。并且没有办法通过它们来分割 apk。就制作三个项目而言,..你真的只需要两个。 4096px 和 2048px 作为 2048x2048 纹理将适用于每个 android 设备。 4096 仅适用于具有更新更好的图形芯片的那些。
  • 我了解到一些旧设备的最大纹理大小为 1024。这是真的吗?
  • 也许是一些非常老的设备 (g1),但每台设备 android 2.1+ 都接近 2048 或更高版本。
猜你喜欢
  • 2012-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-17
  • 2014-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多