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
    
  • 相关阅读:
    阿里--面经 搜集
    阿里一面经验总结
    System对象
    JDBC-oracle(登陆)
    博客静态页面
    设计模式(1)---Factory Pattern
    软件设计师备考经验(含新旧版本对比)
    第九课,ROS仿真1
    参数服务器相关的问题
    3.空域图像处理的洪荒之力
  • 原文地址:https://www.cnblogs.com/zhouyang209117/p/5386727.html
Copyright © 2011-2022 走看看