我最近在我的一个项目中注意到,在某些布局上,我定义了ImageButton
,而在某些布局中,我定义ImageView
。
在相同的角色和任务下,两者都能很好地工作。
但是,
我的问题是;有合适的方法吗?如果不是的话,主要的区别是什么。还让我知道定义imageview
和imagebutton
有什么与内存相关的差异吗?
哪个组件在运行时占用更多内存。
提前谢谢。
ImageButton
是一个ImageView
,它本质上只是为图像按钮提供默认样式,而图像按钮默认样式提供按钮背景可绘制。
在其他一切保持不变的情况下,将没有背景的ImageView
更改为ImageButton
会消耗更多内存,因为背景会占用一些内存。如果你担心,可以使用记忆分析工具来找出差异是否显著。
使用哪一个:如果您想要具有按钮样式的ImageView
,请使用ImageButton
。如果只想显示图像,请使用ImageView
。
ImageView扩展View
其中作为
ImageButton扩展了ImageView。
ImageView用于设置来自不同来源的图标,其中,作为ImageButton,显示一个带有用户可以按下或单击的图像(而不是文本)的按钮。
两个视图的内存分配取决于图像src,否则在内存方面没有显著差异。