在可绘制文件夹中添加背景图像时,我的应用程序速度变慢

时间:2019-01-28 13:52:29

标签: android

我看了这个论坛上,答案是分割在不同分辨率的图像,并把它放在不同的文件夹,另一个办法是把图像一个文件夹中,不要拆开它,以便Android不调整其大小

我的问题是,我们到底要把它放在哪个文件夹中,这样它就不会自动调整大小并按原样显示?

我的res文件夹看起来像这样

enter image description here

1 个答案:

答案 0 :(得分:0)

基于您对图片和清晰度的更新问题。 您在问如何避免扩展。您可以使用drawable目录或drawable-nodpi来避免预缩放。任一种都会为您工作。

我曾经为我正在使用的UI团队为此编写了一个文档,因此该文档针对他们的请求和该应用程序有一些特定之处,但可能会对您有所帮助。

https://drive.google.com/file/d/1gJjT-F5AU57TCAr5I18l0jAvNG5-vLUb/view?usp=sharing

对于矢量可绘制对象,只需使用“可绘制”标准目录即可。确保您没有违反任何不受支持的标签,例如渐变色和线性标签,否则会遇到问题。

接下来,将-24 -26等文件夹用于特定于版本的文件夹。举例来说,假设您在Android 24之前的系统中使用一种类型的图像,但在Post 24中使用另一种类型的图像,则可以使用-24来表示该图像,所有其他图像都将检查标准文件夹。当您使用某些前沿功能,而对于应用程序的最低SDK所提供的支持不够远时,有时会发生这种情况。您不太可能将其用于图像,我什至都没有想到在图像存储桶中会出现此问题,但都一样。

要确定每个存储桶所需的分辨率,这里有几个选项。首先,您可以简单地进行数学运算。确定要占用的英寸数,并确定需要多少像素来适应该大小并标记该MDPI,然后再使用乘数从那里缩放。另一个不那么数学的解决方案是在Android上打开预览,选择MDPI设备,然后开始播放width = 100px height = 100px并进行调整,直到您喜欢它的大小为止。写下来,就是MDPI,然后从那里开始扩展。

关于像素大小的粗略估算,您可以在下面看到应用图标的外观,并在下面看到Android的用途。

enter image description here

因此,即使每个存储桶的像素分辨率都不同,但由于存储桶的放置,它们在所有设备上的尺寸和像素分辨率都将相同。

希望这一切都有道理。

-如果有帮助,我将保留原始答案的以下内容-

您可能已经获得了一些错误的信息。 https://developer.android.com/training/multiscreen/screendensities

Android是一个分布广泛的分辨率和尺寸市场。 为了适应这一点,他们允许使用DP和Buckets。

有用于显示语言,屏幕尺寸,方向和分辨率的存储桶。

您正在寻找分辨率支持。

  

drawable-ldpi -.75乘数大小(1dp = .75px)

     

drawable-mdpi-基线1dp = 1px

     

drawable-hdpi -1.5倍大小(1dp = 1.5px

     

drawable-xhdpi -2倍大小(1dp = 2px

     

drawable-xxhdpi -3倍大小(1dp = 3px

     

drawable-xxxhdpi -4x mulipvlier尺寸(1dp = 4px

每个存储桶都有一个乘法器,可以帮助图像在每个设备上看起来相同的近似大小。因此,即使一部mdpi手机的尺寸为100 x 100像素(伪尺寸,请勿计算; 1英寸乘1英寸)

在hdpi上它必须为150px x 150px,以具有相同的质量和每英寸像素的分辨率。

现在,如果您将所有图像放入可绘制存储桶中。 Android只会忽略这些缩放的比例,而最终会根据设备的不同而占用不同的空间,这在每种类型的手机上会占用多少空间是非常不一致的。

如果将所有图像放在正确的文件夹中,则至少会具有更好的质量。举例来说,假设您有750像素x 750像素的图片,意在填满1英寸的区域。您最好将其放在XXHDPI文件夹或XXXHDPI文件夹中,以便Android知道将其向下缩放而不是向上缩放。这样,您可以为其扩展的每个设备分辨率提供更好的分辨率。

但是,这仍然是不好的做法。您所依赖的Android操作系统在许多便宜的设备上可能会非常缓慢而脆弱,无法为您进行扩展。我建议使用GIMP并自行缩放到每个乘数,然后将其放入相应的分辨率存储桶中。

这样,Android会根据设备确定所需的存储桶分辨率图像,从而按比例减少缩放量。

现在,如果您导入了矢量图形,则这些图形将最终出现在drawable文件夹中,该文件夹告知Android忽略分辨率,而仅将其绘制为矢量图形。我认为这是最好的选择,因为每个图像仅需要一组图像。虽然,矢量图形的加载速度不如JPG或PNG,但是它使您的程序包尺寸减小了很多,并且开发维护工作也更加出色。

希望有帮助。 编码愉快。