Android 背景操纵后,未再次调用视图组绘制
我有一个自定义的Android 背景操纵后,未再次调用视图组绘制,android,android-custom-view,ondraw,viewgroup,Android,Android Custom View,Ondraw,Viewgroup,我有一个自定义的ViewGroup,它覆盖draw(),在其子对象上绘制一些内容。它在构造函数上适当地调用setWillNotDraw(false),并且在正常情况下,可以按预期工作 在布局XML中,当我在此类视图上指定背景可绘制(“启动屏幕”)时,我的问题就开始了,然后在应用程序中删除此背景(setBackgroundDrawable(null))。这只在应用程序初始化时发生一次 <com.regaliz.gui.layouts.FunqRootLayout xmlns:android
ViewGroup
,它覆盖draw()
,在其子对象上绘制一些内容。它在构造函数上适当地调用setWillNotDraw(false)
,并且在正常情况下,可以按预期工作
在布局XML中,当我在此类视图上指定背景可绘制(“启动屏幕”)时,我的问题就开始了,然后在应用程序中删除此背景(setBackgroundDrawable(null)
)。这只在应用程序初始化时发生一次
<com.regaliz.gui.layouts.FunqRootLayout xmlns:android="..."
.
android:background="@drawable/a_filmnew_cover_play_splash">
都被忽略了
更有趣的是,如果我不在XML中分配任何背景,那么setBackgroundDrawable(null)调用似乎不会触及标志,因此我没有这个问题
会发生什么
这是splash drawable:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center"
android:src="@drawable/a_filmnew_cover_play" />
尝试重写dispatchDraw(Canvas)方法尝试使用dispatchDraw?嗯,你有一点。。。让我检查一下!啊,它起作用了!我认为这是一个安卓错误。您认为覆盖dispatchDraw会有任何性能损失吗?它应该和draw()一样,不是吗?如果您提供此答案,我将接受。dispatchDraw调用其他与绘图相关的方法,因此它是所有绘图内容的母亲是。。我有点担心,如果我是额外的无效的东西,我只是渲染了一吨儿童视图上的几行闪烁的线
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center"
android:src="@drawable/a_filmnew_cover_play" />