安卓:绘制分辨率
我已经通过this post(及其他),以及通过documentation关于Android的支持不同的屏幕分辨率,但我无法找到一个明确的答案,一个(简单)的问题:安卓:绘制分辨率
在Android应用程序中使用“res/drawable”图像可以吗?
背景:在这个特定的应用程序中唯一需要的图像是应用程序图标本身和通知图标,在任何布局中都不会有任何图像。
因此,根据我的理解,如果找不到“hdpi” - ,“mdpi” - 和“ldpi” - 文件夹,Android将使用“res/drawable”作为后备。
由于不同屏幕分辨率的唯一缺陷似乎是Android会根据特定分辨率缩放图像,如果没有找到特定分辨率的图像,这只会在UPScaling时出现问题,因为图像会变得模糊。但是如果我在“res/drawable”(而不是3个不同的)中提供所有“hdpi”-images,那么如果尺寸太大,Android是不是只会DOWNscale这些图像?
如果这是真的,我可以通过三分之一的图像节省一些APK空间。
后续问题:我读到了API级别3,需要名为“drawable-v3”的dir。这是真的还是“可绘制的”这个API级别的回退?
任何提示表示赞赏。
在绘图资源文件夹中的图像被认为是在MDPI分辨率,因此他们将得到放大/缩小如果你不提供其他人。
放大的图像将是低分辨率,看起来模糊。按比例缩小的图像会丢失像素,并且看起来很光滑。
因此,您的应用程序只能使用一组默认图像“工作”,但在许多设备上看起来会很糟糕。我强烈建议您创建不同大小的图像,因此在所有设备上看起来都很棒 - 这有点无聊,但不难做到。
在我们拥有xhdpi设备之前不久,所以当你在它的时候,你可能也想创建它们。
我假设你读过this
不是一个完整的答案,但:高度缩小的图像通常看起来和放大图像一样差(但采用不同的方式),因为图形库几乎完全使用插值方法进行调整大小,而插值方法受限于在严重信息丢失之前它们可以缩小图像的程度(对于线性方法约为50%,对于双三次方法约为25%)。这就是为什么大多数平台已经发展出可以让您嵌入最适合每种屏幕尺寸的图像的惯例(如hdpi,mdpi等)。
RES /可绘是回退
的告诫是缩放不仅降低了图像,但需要的处理时间太。
我还没有读API级别3文档但是,遗憾的1/2答案
我用绘制/所有的时间,然后我去百思买和所有的本地无线商店和测试的小/大/巨(平板电脑)设备我的应用程序和他们看起来很好。
除非您有理由针对pre-Donut设备(现在只有4%的设备符合http://developer.android.com/resources/dashboard/platform-versions.html),否则您应该将您的位图放入其中一个-Xdpi目录中。由于兼容性的原因,通用的“drawable”目录是“drawable-mdpi”的同义词,但是现代编写良好的应用程序应该将其drawable放入与其设计密度相匹配的目录中。
对于什么是值得我发现Android的图像处理是乏味和不可靠的。为不同屏幕包含不同大小图像的概念将导致大型应用程序文件与图像臃肿。已经有不符合标准分辨率范围的屏幕。我发现最好不要让android处理缩放,它会为您定位的最小屏幕创建一个基本图像,然后将其缩放,从而在大屏幕上显示普通图像。即使您专门为大屏幕制作图像,也会发生这种情况。 我的解决方案似乎适用于从2“三星手机到索尼平板电脑的所有内容,都是以高分辨率创建图像,并使用Bitmap.createScaledBitmap()来获得所需的尺寸。 Android和有很多东西需要学习
这只会影响应用程序图标本身,其中hdpi 72x72和ldpi是36x36,当缩小时不应该这么差,对吧? – Select0r 2011-02-15 22:13:37
不,它可能看起来很糟糕。应该使用Photoshop等复杂的图形引擎来缩小尺寸 - 他们的算法会比编程环境的图形引擎(它针对性能而不是最终结果质量进行了优化)产生更好的结果 – MusiGenesis 2011-02-15 22:27:45
我有我的所有图像n三种尺寸,用一个图形程序完成,我只是渴望在最终的APK大小中安全的这几个kB :) – Select0r 2011-02-15 22:31:41