10

我和我的同事并行开发了两个应用程序,每个应用程序都具有相似的样式。这些应用程序的主视图背景是径向渐变。他将他的图像实现为九块图像,而我使用可绘制的形状来实现。两者都产生相似且可接受的结果。

所以我的问题是,我们应该使用哪个?内存消耗和性能之间是否存在权衡?我想图像可能需要一些时间来加载,但可绘制的形状需要更多时间来绘制(由于计算)。然后这些是否存储在缓存中,并且这些惩罚仅在它们第一次显示时发生,或者这些问题是否持续存在???

形状可绘制:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <gradient
        android:startColor="#003472"
        android:endColor="#000034"
        android:gradientRadius="350"
        android:type="radial"/>
</shape>

九个补丁:

在此处输入图像描述

4

3 回答 3

3

Shape drawable 非常适合具有简单恒定颜色变化的渐变图像。另一方面,9-patch 图像非常适合具有大量细节、拉伸区域颜色恒定的图像。

于 2012-06-12T14:03:39.450 回答
1

刚刚碰到这个问题。

如果您有涉及它的动画,请不要在 XML 中使用形状。原因是缓存(特别是如果您使用硬件加速)会使它看起来真的“滞后”,因为屏幕不会经常刷新。

于 2012-09-28T21:10:51.243 回答
0

看看@Ivan Bartsov 给出的答案。但是通过仔细的代码分析,他得出结论,对于大多数一般情况,使用 9 补丁需要的进程比生成的梯度使用更少的内存。因此,在大多数情况下,最好使用 9 个补丁。

看看他对模式细节的回答:我应该使用什么来获得更好的性能、九个补丁或可绘制的 xml 资源?

于 2014-01-15T02:21:19.237 回答