android中所有屏幕的显示基本都是依靠回调这个函数,
public void onDraw(Canvas canvas){
............
}
在程序启动之后,执行A.invalidate() ,只是invalidate了屏幕的一部分区域。但是在onDraw第二次次回调中,会render overall screen area.
第二次次调用完成之后,A.invalidate() 执行,只会render 屏幕中无效的那一部分,虽然也会调用不再无效区域中的View.onDraw并执行起内部代码。但是并不重画这部分区域。在android中使用Canvas进行绘画,Canvas类内部都是本地JNI代码。
如下代码 可测试:
public class DrawView extends View {    Paint mPaint;    private Paint mBackgroudPaint;    private int backgroundColor=0xff0000ff;// 背景颜色    private int mN=0;    public DrawView(Context context) {        super(context);        // TODO Auto-generated constructor stub        mPaint = new Paint();        mPaint.setColor(Color.WHITE);        mPaint.setTextSize(24);        mBackgroudPaint=new Paint();        mBackgroudPaint.setColor(backgroundColor);    }    public void onDraw(Canvas canvas){        Log.d("DrawView", "DrawView in liuwei =="+mN);        mN++;        if(mN>1){            mBackgroudPaint.setColor(0xffff0000);        }        RectF rect=new RectF(0,0,this.getRight()-this.getLeft(),this.getBottom()-this.getTop());        canvas.drawRoundRect(rect, 40.0f, 40.0f, mBackgroudPaint);        for(int i=0;i<mN;i++){//当无效区域不包括此View时,虽然回调onDraw方法,进而执行此代码,但是因为不再无效//去内,所以不起作用,不会被绘画。            canvas.drawText("读取信息!+ "+ i+" SaveCount== "+canvas.getSaveCount(), 0, 40+24*i, mPaint);        }    }}

这样设计不知google出于什么考虑? 控制源码是哪块?
如果有哪位仁兄知道,请留言,不胜感激!

使Configure 发生变化,也会间接回调onDraw方法(回调几次),而且此时整个屏幕都会被重新绘画。结束后 此时手动某一个View,使其无效,第一次回调onDraw时,也是整个屏幕都会被重新绘画,接下来回调每一个View的onDraw方法,只有无效区域会被重画。。

更多相关文章

  1. Android 记忆卡片游戏 记忆力 Android游戏 Android记忆卡片游戏
  2. android 源代码在线查看和索引
  3. Android系统默认Home应用程序(Launcher)的启动过程源代码分析(3)
  4. Android通过chrome插件在线查看Android源代码
  5. 关于repo下载android代码时候错误的处理。
  6. Android屏幕常亮防息屏
  7. Android系统在新进程中启动自定义服务过程(startService)的原理分
  8. Android 之如何添加 android private libraries 中的包的源代码

随机推荐

  1. Android一日游
  2. android布局文件中各属性所代表的意义
  3. Android 控件布局常用属性
  4. [Android]Android部分基础学习路线图
  5. android layout,xml属性介绍
  6. android:versionCode和android:versionNa
  7. 理解 Android Build 系统
  8. 《Android移动应用开发从入门到精通》下
  9. Android仿真器远程登录模式(telnet)
  10. 二、android百度地图定位显示当前位置(an