Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不同的AndroidManifest.xml用于低分辨率和高分辨率_Android_Pixel Density - Fatal编程技术网

不同的AndroidManifest.xml用于低分辨率和高分辨率

不同的AndroidManifest.xml用于低分辨率和高分辨率,android,pixel-density,Android,Pixel Density,我必须将我的应用程序(APK)分为两部分: 低分辨率,使用低分辨率纹理 高分辨率,使用高分辨率纹理 现在这里的“低”和“高”是非常相对的。低包含1x和2x比例的纹理,高是3x比例的相同纹理。是的,这是一个从iOS移植的应用程序。由于尺寸原因,我将不得不制作多个APK 所以,我必须在某个地方划清界限,我可能会决定对高达320 DPI的设备使用低分辨率,对DPI超过320 DPI的设备使用高分辨率。比如400或更高,或者什么的。从外观上看,我们可以通过使用AndroidManifest.xml中

我必须将我的应用程序(APK)分为两部分:

  • 低分辨率,使用低分辨率纹理
  • 高分辨率,使用高分辨率纹理
现在这里的“低”和“高”是非常相对的。低包含1x和2x比例的纹理,高是3x比例的相同纹理。是的,这是一个从iOS移植的应用程序。由于尺寸原因,我将不得不制作多个APK

所以,我必须在某个地方划清界限,我可能会决定对高达320 DPI的设备使用低分辨率,对DPI超过320 DPI的设备使用高分辨率。比如400或更高,或者什么的。从外观上看,我们可以通过使用AndroidManifest.xml中的supported screens标记来分离DPI,但我并不清楚实际应该如何执行,因为无法指定实际的DPI。我的知识可能还不够,但我很难理解如何将“dp”(基本上是iOS中的点)与“dpi”(即密度)联系起来

Android speak中的320ish dpi看起来是“xhdpi”,上面的东西是xxhdpi等等(~480 dpi),根据表:

  • 低分辨率:xhdpi(超高)~320dpi
  • 高分辨率:xxhdpi(超高)~480dpi

问题是,我们如何在清单文件中要求一定的最小DPI?同样,也必须为低分辨率APK指定最大DPI?

您不需要创建不同的APK。只需将纹理放在正确的文件夹中(drawable mdpi、drawable ldpi、drawable hdpi等),Android将只为每个设备保留正确的密度文件夹。这就是为什么他们做出:

当应用程序资源优化技术删除未使用屏幕密度的资源时,启动器图标可能会变得模糊,因为启动器应用程序必须放大较低分辨率的图标进行显示。为了避免这些显示问题,应用程序应该使用mipmap/资源文件夹作为启动器图标

编辑:
如果你真的需要那么试试…

我有一个同样的问题供你参考:我最终决定不这么做。维护几个APK是一件非常麻烦的事。。。只是头痛。我可能只使用低分辨率,或者在50MB以下做一些艰苦的工作。可能只有低分辨率。在我看来,问题在于谷歌设置的空间限制太小。100 MB对我来说不是很多数据,即使是通过蜂窝网络。由于大小的原因,我将不得不制作多个APK。所有分辨率都不在50 MB之内。我的应用程序只有3倍的纹理,最终达到41 MB,1倍和2倍的纹理达到31 MB。没有办法将所有内容都放在一个APK中并保持在50MB以内。兼容的屏幕看起来是正确的答案,不知道为什么我错过了那个。谢谢