gpt4 book ai didi

android - getWindow().setBackgroundDrawable 和 getWindow().getDecorView().setBackgroundDrawable 之间的区别

转载 作者:行者123 更新时间:2023-11-30 01:10:13 25 4
gpt4 key购买 nike

它们有什么区别?据我所知,他们都做同样的事情。

最佳答案

如果你去资源,你会发现PhoneWindow.class实现了 Window.setBackgroundDrawable 方法:

@Override
public final void setBackgroundDrawable(Drawable drawable) {
if (drawable != mBackgroundDrawable || mBackgroundResource != 0) {
mBackgroundResource = 0;
mBackgroundDrawable = drawable;
if (mDecor != null) {
mDecor.setWindowBackground(drawable);
}
if (mBackgroundFallbackResource != 0) {
mDecor.setBackgroundFallback(drawable != null ? 0 : mBackgroundFallbackResource);
}
}
}

如你所见,它调用了 DecorView 的不同方法setWindowBackground:

public void setWindowBackground(Drawable drawable) {
if (getBackground() != drawable) {
setBackgroundDrawable(drawable);
if (drawable != null) {
drawable.getPadding(mBackgroundPadding);
} else {
mBackgroundPadding.setEmpty();
}
drawableChanged();
}
}

这实际上是使用方法 DecorView.setBackgroundDrawable 但也为 Window 提供额外的逻辑。所以我建议您使用 getWindow().setBackgroundDrawable()

关于android - getWindow().setBackgroundDrawable 和 getWindow().getDecorView().setBackgroundDrawable 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38499641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com