Java 占位符的setImageDrawable与setBackground

Java 占位符的setImageDrawable与setBackground,java,android,Java,Android,我试图找到正确的方法,为设置的ImageView设置占位符图像/资源(VectorDrawableresource),目标图像位图可用时 我在指南中看到了两种方法。我可以使用XML上的background属性设置背景,也可以使用setBackground()以编程方式设置背景。然后,我将使用setImageDrawable()设置目标图像 第二种方法是对占位符使用setImageDrawable(),然后对目标图像再次使用setImageDrawable() 这两种方法都有效,但我注意到在使用第

我试图找到正确的方法,为设置的
ImageView
设置占位符图像/资源(
VectorDrawable
resource),目标图像位图可用时

我在指南中看到了两种方法。我可以使用XML上的
background
属性设置背景,也可以使用
setBackground()
以编程方式设置背景。然后,我将使用
setImageDrawable()
设置目标图像

第二种方法是对占位符使用
setImageDrawable()
,然后对目标图像再次使用
setImageDrawable()

这两种方法都有效,但我注意到在使用第一种方法时出现了一些UI滞后。我不确定这是否是由这种做法造成的

所以,我想知道。使用占位符的正确方法是什么?为什么


谢谢。

第二种方法始终是完成此任务的最佳方法。 但是,如果你想使用第一种方法,那么正确的使用方法是这样的

int sdk = android.os.Build.VERSION.SDK_INT;
if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
    setBackgroundDrawable();
} else {
    setBackground();
}
intsdk=android.os.Build.VERSION.sdk\u int;
if(sdk
当ImageView中的load image更改了src值时,表示不更改背景。 更改背景对于android来说是昂贵的,当我们想要加载大量图像(如ListView、RecyclerView等)时,情况会变得更糟。 为了有更好的性能,应该改变图像src,而不是改变图像背景

对于更改图像src,您可以使用

image.setImageResource()

更改适合单个图像的背景


此外,如果使用相同的占位符,则所有图像加载器都支持占位符,不需要手动设置。

您应该使用第二种方法谢谢您的回复,GOVIND DIXIT。你能解释一下为什么它是最好的方法吗?setBackground已经被弃用了,它需要API 16。这可能对你有帮助
image.setImageDrawable()