将视图标记为另一个类的脏

时间:2011-09-25 23:52:02

标签: android

现在我正在为Android构建游戏。我有一个类game.java,它调用board.xml作为它的视图。 Board.xml具有以下内容:

... //Score info
<edu.xxx.yyy.zzz.BoardView android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_weight="1"/>
... //pause button
... //submit button

BoardView是一个扩展View的Java类,用于绘制游戏板。一切都正确显示。我想知道我是否可以在game.java中实现代码,该代码可以将BoardView的区域标记为脏(即在我点击Submit按钮后更改一些全局变量)。

1 个答案:

答案 0 :(得分:2)

使用属性

为BoardView提供xml中的id
 android:id="@+id/myBoardView"

然后使用findViewById

抓住BoardView
 BoardView myBV = (BoardView) findViewById(R.id.myBoardView);

然后使用invalidate方法

简单地标记要弄脏的区域
 myBV.invalidate(); //invalidates the entire BoardView

 Rect dirty = new Rect(...);
 myBV.invalidate(dirty); //marks the area defined by dirty as dirty

 int left = 0; int right = 10; int top = 0; int bot = 10;
 myBV.invalidate(left, top, right, bot); //invalidates the area defined by these coords as dirty