关于android的ondraw的问题
请问android的ondraw参数与那些有关?设置24意味着24毫秒后再执行ondraw函数吗???postInvalidateDelayed(longmillions...
请问android的ondraw参数与那些有关?设置24意味着24毫秒后再执行ondraw函数吗???
postInvalidateDelayed(long millionsecond);这个函数不是可以设置刷新的时间间隔吗? 展开
postInvalidateDelayed(long millionsecond);这个函数不是可以设置刷新的时间间隔吗? 展开
1个回答
展开全部
你说的是哪个类的ondraw方法?View.onDraw(Canvas canvas)的参数可不是数值型的啊
postInvalidateDelayed(long millionsecond);是你说的那个意思,可以用于非UI线程,由于线程调度也要耗时,里面的参数millionsecond不是特别精确。
postInvalidateDelayed(long millionsecond);是你说的那个意思,可以用于非UI线程,由于线程调度也要耗时,里面的参数millionsecond不是特别精确。
追问
View.onDraw本身应该在UI线程中执行的吧?那如果自定义view复写ondraw函数,可以在函数中执行postInvalidateDelayed函数吗??那这样的话就属于在UI线程中去执行该函数,这样的话,是不是应该设置的值与实际值偏差不应该大于5?
可以这样理解吗?
还有问一下你知道EDID是什么吗?在android里面有这方面知识点吗??
追答
一般不要在ondraw里调用invalidate(),postinvalidte(),之类的方法,因为这些方法又会调用onDraw,这样就死循环了啊。还有postInvalidateDelayed这个方法,我没有仔细研究过,不过它很可能会启动另一个线程,等时间到了再给UI线程发消息,所以不要当作是UI线程里执行。至于偏差值,这个要亲自实验了,线程调度充满了随机性。
EDID这个就不知道了,才疏学浅。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询