`

android中View的实时刷新

 
阅读更多

昨天在做一个界面时,想在用户touch屏幕之后先绘图一下,待逻辑处理完毕,再绘制最后的图,查看View的重绘方法,得知是invalidate()函数,于是在代码中这么写道:

  1. publicclassPuzzleViewextendsView{
  2. @Override
  3. protectedvoidonDraw(Canvascanvas){
  4. ...
  5. }
  6. @Override
  7. publicbooleanonTouchEvent(MotionEventevent){
  8. invalidate();
  9. //处理逻辑
  10. invalidate();
  11. }
  12. }

写完,运行,oh,my god,只有第二次invalidate做了,第一次打酱油去了,翻资料,翻啊翻,看到Invalidate()的描述是这样的:当调用线程处于空闲状态时,会调用onDraw,刷新界面,也就是说,该函数仅是标记当前界面过期,并不直接负责刷新界面,奶奶的,不刷。。。继续翻啊翻,看到SurfaceView 能实现实时刷新,代码结构如下:

  1. publicclassPuzzleViewextendsSurfaceViewimplementsSurfaceHolder.Callback{
  2. privateSurfaceHoldersurfaceHolder;
  3. publicPuzzleView(Contextcontext){
  4. //....
  5. surfaceHolder=this.getHolder();//获取holder
  6. surfaceHolder.addCallback(this);
  7. }
  8. protectedvoidpaint(Canvascanvas){
  9. //这里的代码跟继承View时OnDraw中一样
  10. }
  11. publicvoidrepaint(){
  12. Canvasc=null;
  13. try{
  14. c=surfaceHolder.lockCanvas();
  15. paint(c);
  16. }finally{
  17. if(c!=null){
  18. surfaceHolder.unlockCanvasAndPost(c);
  19. }
  20. }
  21. }
  22. }

好了,这样写好后,只要在以前调用invalidate()的地方调用repaint()就OK了~

分享到:
评论

相关推荐

    android自定义view之刷新验证码

    在“android自定义view之刷新验证码”这个主题中,我们将深入探讨如何利用自定义View来实现一个可刷新的验证码显示组件。验证码通常用于验证用户身份,防止机器人或者恶意软件的自动操作,确保数据安全。 首先,...

    Android自定义View(验证码)

    在Android开发中,自定义View是一项重要的技能,它允许开发者扩展Android系统提供的基本视图组件,以满足项目中独特的需求。本篇文章将深入探讨如何基于鸿洋大神的博客内容,创建一个自定义的验证码View。 验证码的...

    Android自定义View实现转盘旋转的效果

    在Android中,自定义 View 是一种非常重要的技术,可以满足开发者的个性化需求。通过继承 View 类,并重写构造函数和 onDraw() 函数,可以实现自定义的 View。onDraw 函数是 View 的一个关键函数,在界面刷新时会被...

    Android-自定义下拉刷新的RecylcerView

    在Android应用开发中,RecyclerView是一个强大的视图组件,它用于展示可滚动的列表或网格数据。本教程将探讨如何在RecyclerView中实现自定义的下拉刷新功能,这在许多应用程序中都是一个常见的需求,比如社交媒体...

    android中ListView下拉刷新

    这可以通过设置一个自定义的View来实现,然后在` SwipeRefreshLayout `中设置这个View作为刷新头部。 4. **ListView与Adapter**:在实现下拉刷新功能的同时,别忘了ListView的核心是Adapter。Adapter负责将数据转化...

    Android实现支持所有View的通用的下拉刷新控件

    1. **状态管理**:下拉刷新有多个状态,包括Reset(初始状态)、Pull(下拉中)、Refreshing(刷新中)、Completed(刷新完成)和Reset(再次回到初始状态)。我们需要管理这些状态,确保在不同状态下正确地更新UI和...

    Android ListView 下拉刷新、上拉加载

    总结,下拉刷新和上拉加载是Android应用中常见的功能,通过SwipeRefreshLayout和OnScrollListener可以方便地实现。自定义ListView则允许开发者更深入地控制列表的行为和视觉效果,以提供更加个性化的用户体验。在...

    Android 通用下拉刷新

    在Android应用开发中,"通用下拉刷新"是一种常见的组件功能,它允许用户通过下拉列表来刷新数据。这个功能通常被用在ListView、RecyclerView等滚动视图中,以实现数据实时更新。XRefreshView是可能的一个开源库,...

    Android中View绘制流程以及invalidate()

    在Android开发中,View是构建用户界面的基本元素,它负责将数据可视化并处理用户的交互事件。`invalidate()`方法是View类中的一个重要成员,用于触发View的重绘操作。本篇文章将深入探讨Android中View的绘制流程以及...

    Android自定义View仿腾讯TIM下拉刷新View

    在Android开发中,自定义View是一项重要的技能,它允许开发者创造出独特且富有创意的用户界面。本篇文章将探讨如何创建一个模仿腾讯TIM应用下拉刷新效果的自定义View。这个效果的特点是,当用户下拉时,界面上的小球...

    Android listView下拉刷新上拉刷新带阻尼效果-IT计算机-毕业设计.zip

    这个"Android listView下拉刷新上拉刷新带阻尼效果"的源码Demo是几年前的一个示例,旨在帮助学生理解和实现Android应用中的下拉刷新和上拉加载更多功能,同时加入了阻尼效果,提升用户体验。阻尼效果是指在用户滑动...

    Android中ListView动态刷新

    总结,`notifyDataSetChanged()`是Android中更新ListView数据的关键方法,它使得开发者能够在程序运行时轻松地实现列表数据的动态刷新,提供了丰富的用户体验。但同时也需要注意性能优化,合理使用,以避免对应用...

    Android自带下拉刷新的代码例子

    在Android开发中,下拉刷新是一项常见的功能,它允许用户通过在列表顶部向下拉动来刷新内容。Android系统自API 19(KitKat)开始引入了一个名为`SwipeRefreshLayout`的原生控件,用于实现这一交互。这个控件通常与`...

    Android自定义控件下拉刷新上拉加载,所有View通用.(直接拿来用)

    Android自定义控件下拉刷新上拉加载,所有View通用.(直接拿来用).实现了ListView、GridView、ExpandableListView、ScrollView、WebView、ImageView、TextView的下拉刷新和上拉加载

    安卓Android工具栏刷新按钮的动画旋转效果实现

    在安卓(Android)应用开发中,用户界面的交互体验至关重要,而刷新按钮的动画效果是提升用户体验的一个关键因素。在本教程中,我们将探讨如何在Android工具栏中实现一个点击后由单箭头变为旋转圆圈的刷新按钮动画...

    Android自定义控件下拉刷新实例代码

    `ImageView`通常用于显示一个箭头图标,表示当前状态是待刷新(如上拉)或刷新中(如旋转)。`ProgressBar`则在刷新过程中显示,提示用户数据正在加载。 ```xml android:id="@+id/arrow" android:layout_width=...

    Android 之WebView实现下拉刷新和其他相关刷新功能

    在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序中加载和显示网页内容。有时候,为了提升用户体验,我们希望在WebView中实现下拉刷新的功能,就像原生的ListView或RecyclerView那样。本篇文章...

    android原生listview下拉刷新demo

    SwipeRefreshLayout是Android SDK中的一个布局容器,设计用于包裹一个可以刷新的View,如ListView、RecyclerView等。当用户从顶部向下滑动时,SwipeRefreshLayout会显示一个刷新指示器,表示正在加载新数据。一旦...

    Android应用源码 ListView下拉刷新 Demo

    这个"Android应用源码 ListView下拉刷新 Demo"提供了一个实际的例子,帮助开发者了解如何在ListView中实现这一功能。 1. **SwipeRefreshLayout**:Android SDK 提供了一个名为SwipeRefreshLayout的布局容器,它是...

    android列表下拉刷新

    在Android开发中,"下拉刷新"是一种常见的用户交互功能,允许用户通过在列表顶部向下拉动来获取最新的数据。这个功能极大地提升了应用的用户体验,让用户能够实时获取到更新的信息。在本项目中,你将找到一个可以...

Global site tag (gtag.js) - Google Analytics