android canvas view重绘 我在一个activity中调用了canvas。在canvas中我点击事件需要重新绘制当前view

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android canvas view重绘 我在一个activity中调用了canvas。在canvas中我点击事件需要重新绘制当前view相关的知识,希望对你有一定的参考价值。

调用
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mGameView = new Bao(this);
setContentView(mGameView);

canvas类:
public void onDraw(Canvas canvas)
super.onDraw(canvas);
/* 设置画布的颜色 */
moren(canvas);

在onTouchEvent中我需要像执行moren(canvas)那样重新绘制界面,该怎么做?
网上搜的好像需要重绘线程了什么了,没看明白。

参考技术A 除了SurfaceView,其它的都必须通过调用View.invalidate方法刷新View
所以不能直接执行moren(canvas),需要在onTouchEvent调用invalidate
参考技术B 你可以再View类里面加一个reDraw方法,这方法里面去重新调用一下onDraw。在你activity中要重画时去调用reDraw方法。本回答被提问者采纳 参考技术C 额,看不懂啊

以上是关于android canvas view重绘 我在一个activity中调用了canvas。在canvas中我点击事件需要重新绘制当前view的主要内容,如果未能解决你的问题,请参考以下文章

[Android FrameWork 6.0源码学习] View的重绘过程之WindowManager的addView方法

Android canvas绘制的可滑动刻度尺

[Android FrameWork 6.0源码学习] View的重绘过程

Tips——RN canvas缩放处理

[Android FrameWork 6.0源码学习] View的重绘过程之Layout

[Android FrameWork 6.0源码学习] View的重绘过程之Draw