3 回答
慕妹3146593
TA貢獻1820條經驗 獲得超9個贊
可以設置這個回調函數
| 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 onGlobalLayout() { // TODO Auto-generated method stub }}); |
揚帆大魚
TA貢獻1799條經驗 獲得超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()。
慕妹3242003
TA貢獻1824條經驗 獲得超6個贊
修改顏色后調用invalidate()
在自定義View 中提供一個方法
public void setRectColor(int color){
colors[x][x] = color; //修改顏色
invalidate();
}
添加回答
舉報
0/150
提交
取消
