Android的repaint函数
16lz
2021-01-25
昨天安装了Android SDK1.5 和ADT0.9.1。
在安装时发现,要在Eclipse安装ADT时还必须安装些其他的插件,自动寻找依赖关系后就必须联网安装这些插件。如果没有网络,貌似就不能安装成功了。
以上为废话。
写了一个View,在上面画了点东西,不过没有找到View有repaint函数,寒。
event函数叫onDraw,难道叫reDraw,查了下依然没有此函数。
最后百度了下,终于找到了Android的repaint函数。 内容如下:
1、repaint()方法与invalidate()/postInvalidate()方法
如果去读API,我们可以发现J2ME中Canvas的repaint()与Android中View的invalidate()/postInvalidate()方法实现了相同的功能(连说明文字几乎都一样…),但是invalidate()/postInvalidate()两者却有着区别:invalidate() 只能在UI这个线程里通过调用onDraw(Canvas canvas)来update屏幕显示,而postInvalidate()是要在non-UI线程里做同样的事情的。这就要求我们做判断,哪个调用是本线程的,哪个不是,这在做多线程callback的时候尤为重要。而在J2ME中,不管怎样直接调用repaint()就好了
在安装时发现,要在Eclipse安装ADT时还必须安装些其他的插件,自动寻找依赖关系后就必须联网安装这些插件。如果没有网络,貌似就不能安装成功了。
以上为废话。
写了一个View,在上面画了点东西,不过没有找到View有repaint函数,寒。
event函数叫onDraw,难道叫reDraw,查了下依然没有此函数。
最后百度了下,终于找到了Android的repaint函数。 内容如下:
1、repaint()方法与invalidate()/postInvalidate()方法
如果去读API,我们可以发现J2ME中Canvas的repaint()与Android中View的invalidate()/postInvalidate()方法实现了相同的功能(连说明文字几乎都一样…),但是invalidate()/postInvalidate()两者却有着区别:invalidate() 只能在UI这个线程里通过调用onDraw(Canvas canvas)来update屏幕显示,而postInvalidate()是要在non-UI线程里做同样的事情的。这就要求我们做判断,哪个调用是本线程的,哪个不是,这在做多线程callback的时候尤为重要。而在J2ME中,不管怎样直接调用repaint()就好了
更多相关文章
- Android(安卓)入门(7)——文件持久化存储
- kotlin实现Android(安卓)MVP模式开发
- 使用NDK移植开源项目,JNI的使用技巧
- android周记1
- eclipse项目导入android studio 各类问题及解决方法
- Android之Tab分页标签的实现方法一-----TabActivity和TabHost的
- ListView中的Item项中有Button按钮时,setOnItemClickListener点击
- Android开发中后台的Service服务探索
- android drawBitmapMesh and drawVertices