Android 如何判断一个View重绘或加载完成?
3 回答
慕慕森
TA贡献1856条经验 获得超17个赞
可以设置这个回调函数
12345678 | //view重绘时回调 view.getViewTreeObserver().addOnDrawListener( new OnDrawListener() { @Override public void onDraw() { // TODO Auto-generated method stub } }); |
12345678 | //view加载完成时回调 view.getViewTreeObserver().addOnGlobalLayoutListener( new OnGlobalLayoutListener() { @Override public void onGlobalLa |
慕沐林林
TA贡献2016条经验 获得超9个赞
两种方式刷新:
主线程可以直接调用Invalidate()方法刷新
子线程可以直接调用postInvalidate()方法刷新。
API的描述是这样的 : Invalidatethe whole view. If the view is visible, onDraw(Canvas) will be called at somepoint in the future. This must be called from a UI thread. To call from anon-UI thread, call postInvalidate().。当Invalidate()被调用的时候,View的OnDraw()就会被调用,Invalidate()必须是在UI线程中被调用,如果在新线程中更新视图的就调用postInvalidate()。
当年话下
TA贡献1890条经验 获得超9个赞
修改颜色后调用invalidate()
在自定义View 中提供一个方法
public void setRectColor(int color){
colors[x][x] = color; //修改颜色
invalidate();
}
- 3 回答
- 0 关注
- 705 浏览
添加回答
举报
0/150
提交
取消