Android 重用背景绘图有多重要?

Android 重用背景绘图有多重要?,android,optimization,button,resources,android-drawable,Android,Optimization,Button,Resources,Android Drawable,我一次在屏幕上有许多按钮,每个按钮都有一个我动态创建的背景可绘制的。有7种背景可供选择 我想知道我是否应该为这些绘图实现一个重用映射,只创建每种类型中的一个,并在相同类型的按钮上重用它(非常像ListViewreuses layouts for rows) 另一方面,对于我来说,为每个按钮创建一个单独的可绘制的,即使重复键入,也要容易得多 有赞成/反对这些方法的论点吗? (注意:我不想开始讨论,这不是那种论坛,只是为了得到实际的编程理由,比如内存使用、速度、兼容性等。)我在你的一个问题的答案中贴

我一次在屏幕上有许多按钮,每个按钮都有一个我动态创建的背景
可绘制的
。有7种背景可供选择

我想知道我是否应该为这些绘图实现一个重用映射,只创建每种类型中的一个,并在相同类型的按钮上重用它(非常像
ListView
reuses layouts for rows)

另一方面,对于我来说,为每个按钮创建一个单独的
可绘制的
,即使重复键入,也要容易得多

有赞成/反对这些方法的论点吗?

(注意:我不想开始讨论,这不是那种论坛,只是为了得到实际的编程理由,比如内存使用、速度、兼容性等。)

我在你的一个问题的答案中贴了一个链接,在每个问题中都解释了drawables共享某种状态,因此你的担心是无效的。无论如何,如果按钮同时出现在屏幕上,我看不出你的地图会有什么帮助。@Luksprog据我所知,如果类
MyView
的成员是
Drawable mBg
并且在实例化过程中赋值
mBg=mymap.get(“RedButton”),则不会克隆绘图表,而是映射中对同一绘图表的引用。由于
Drawable
是一个类,而不是像
float
int
这样的简单类型,我假设如果按钮的数量很大,则会节省一些内存。节省的内存会很小,因为Drawable将共享公共状态(例如,在
bitmappdrawable
的情况下,位图将被共享)。此外,如果在视图上设置了一个drawable,则该视图将自己注册为drawable的回调,因此在您的情况下,drawable将只引用最后一个设置的视图)。我不想为此费心,只想使用一个不同的绘图工具。@Luksprog我非常感谢您的输入,当我必须为我的按钮选择最终代码时,我会使用它。