使用可绘制的XML还是可绘制的图像,哪个更占用内存?

5

我有一个应用程序,其中有几个按钮,对于这些按钮,我使用不同的可绘制图像(png)来设置背景。

我知道在android中可以使用“drawable xml”文件绘制自定义按钮。在那里,您可以为该特定形状定义形状并设置渐变、填充等内容。这将减小应用程序的大小(因为使用它将消除所有PNG)。

background.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient android:startColor="#FFFF0000" android:endColor="#FFFFFFFF" android:angle="90" />
<padding android:left="4dp" android:top="4dp" android:right="4dp" android:bottom="4dp" />
<corners android:radius="4dp" />

我的问题是,从内存角度来看,哪个更可取?此外,它们之间的主要优缺点是什么?

1个回答

5

在xml中创建可绘制对象会有以下好处:

1)不需要将整个图片加载到内存中,因此成本更低。

2)它不会受到缩放问题的影响。

对于简单的背景和渐变色,我一定会使用XML布局。如果内容太复杂无法用XML布局实现,则可以使用实际的PNG图像。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接