android 在简单画图的基本过程,解释invalidate方法的作用和使用方式
时间: 2023-05-18 11:02:34 浏览: 109
在 Android 中,简单画图的基本过程包括以下步骤:
1. 创建一个自定义的 View 类,继承自 View 或其子类。
2. 在 View 类中重写 onDraw 方法,实现具体的绘图操作。
3. 在需要更新绘图的时候,调用 View 的 invalidate 方法,触发 View 的重绘。
invalidate 方法的作用是通知系统,当前 View 需要重新绘制。系统会在下一次绘制周期中调用 View 的 onDraw 方法,重新绘制 View。invalidate 方法有多个重载形式,可以指定重绘的区域、延迟重绘等参数。
使用方式如下:
view.invalidate(); // 通知系统重绘整个 View
view.invalidate(left, top, right, bottom); // 通知系统重绘指定区域
view.postInvalidate(); // 在非 UI 线程中通知系统重绘整个 View
view.postInvalidate(left, top, right, bottom); // 在非 UI 线程中通知系统重绘指定区域
注意:invalidate 方法只是通知系统需要重绘,具体的重绘时间和方式由系统决定,不一定会立即生效。如果需要立即重绘,可以调用 View 的 invalidate 方法后立即调用 View 的 draw 方法,手动触发重绘。
相关问题
android invalidate
Android中的invalidate()方法是用于强制重绘View的方法。当View的状态发生变化时,可以调用invalidate()方法来通知系统重新绘制View。这个方法会触发View的onDraw()方法,从而实现View的重绘。invalidate()方法可以在UI线程中调用,也可以在非UI线程中调用,但是在非UI线程中调用时需要使用postInvalidate()方法。
上面的invalidate方法
invalidate方法是Android系统中View类的一个方法,用于使View失效,即标记为需要重绘。当调用invalidate方法后,系统会在下一个绘制周期中重新绘制该View。invalidate方法有多个重载形式,可以指定重绘的区域或者延迟重绘的时间等。
例如,如果我们在自定义View中修改了一些属性或者数据,需要让View重新绘制以更新显示,就可以调用invalidate方法。
示例代码:
```
public class MyView extends View {
// ...
public void updateData() {
// 更新数据
// ...
// 标记为需要重绘
invalidate();
}
@Override
protected void onDraw(Canvas canvas) {
// 绘制操作
// ...
}
}
```
在updateData方法中,我们先更新了数据,然后调用invalidate方法标记为需要重绘,系统会在下一个绘制周期中调用onDraw方法重新绘制该View。