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
    
  • 相关阅读:
    师弟大喜之日,送上一幅对联 求横批
    漫画:Google 走了
    产品研发流程改进
    Outlook2010 Bug 一则
    Android 手机用户版本比例
    CDMA 短信中心号码
    UIM卡 PIN 码特点
    [Accessibility] Missing contentDescription attribute on image
    java打印函数的调用堆栈
    android中解析Json
  • 原文地址:https://www.cnblogs.com/zhouyang209117/p/5386727.html
Copyright © 2011-2022 走看看