现在我正在为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按钮后更改一些全局变量)。
答案 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