zoukankan      html  css  js  c++  java
  • android学习12——重载SurfaceView一些方法的执行顺序

    先看代码

    public class SurfaceViewActivity extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            getWindow().setFlags(
                    WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
            setContentView(new MySurfaceView(this));
        }
    }
    
    public class MySurfaceView extends SurfaceView implements SurfaceHolder.Callback {
        private SurfaceHolder surfaceHolder;
        private Paint paint;
        public MySurfaceView(Context context) {
            super(context);
            surfaceHolder = getHolder();
            surfaceHolder.addCallback(this);
            paint = new Paint();
            paint.setColor(Color.RED);
        }
    
        @Override
        public void surfaceCreated(SurfaceHolder holder) {
            Log.i("Logzy", Thread.currentThread().getName() + ":surfaceCreated");
            myDraw();
        }
    
        @Override
        public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
            Log.i("Logzy", Thread.currentThread().getName() + ":surfaceChanged");
        }
    
        @Override
        public void surfaceDestroyed(SurfaceHolder holder) {
            Log.i("Logzy", Thread.currentThread().getName() + ":surfaceDestroyed");
        }
    
        private void myDraw() {
            Canvas canvas = surfaceHolder.lockCanvas();
            canvas.drawRect(0, 0, 100, 100, paint);
            surfaceHolder.unlockCanvasAndPost(canvas);
        }
    
        @Override
        public void onWindowFocusChanged(boolean hasWindowFocus) {
            super.onWindowFocusChanged(hasWindowFocus);
            Log.i("Logzy", Thread.currentThread().getName() + ":onWindowFocusChanged");
        }
    }
    

    重写了surfaceCreated,surfaceChanged,surfaceDestroyed,onWindowFocusChanged这几个方法.运行程序,结果是:

    04-13 08:56:03.111  13682-13682/edu.cgxy.surfaceview I/Logzy﹕ main:surfaceCreated
    04-13 08:56:03.111  13682-13682/edu.cgxy.surfaceview I/Logzy﹕ main:surfaceChanged
    04-13 08:56:03.141  13682-13682/edu.cgxy.surfaceview I/Logzy﹕ main:onWindowFocusChanged
    

    再把程序切换到后台,结果是

    04-13 08:59:49.661  13682-13682/edu.cgxy.surfaceview I/Logzy﹕ main:onWindowFocusChanged
    04-13 08:59:49.791  13682-13682/edu.cgxy.surfaceview I/Logzy﹕ main:surfaceDestroyed
    
  • 相关阅读:
    英语面试自我介绍范文(二)
    在PHP中PDO解决中文乱码问题的一些补充
    英文面试自我介绍(一)
    添加XP/2003的网络用户和密码及用户自动登录
    Windows Server 2000/2003/2008错误
    数据库连接字符串大全 (转载)
    flash中特殊字符解析的使用
    创建T100Monitor技术研究过程
    LINQ,SQL查询,LINQ 实现常见SQL查询
    Web.Config 的图形配置及配置项含意
  • 原文地址:https://www.cnblogs.com/zhouyang209117/p/5386727.html
Copyright © 2011-2022 走看看