Android:SurfaceView的默认颜色位图是什么以及如何更改它?

时间:2016-05-13 13:42:54

标签: android android-layout surfaceview surfaceholder android-graphics

在我的应用程序中,我有一个半透明Activity,其中android:windowIsTranslucent设置为trueActivity包含FrameLayout,我以编程方式添加SurfaceView

默认情况下,SurfaceView根据Activity背景Theme绘制位图,在我的情况下TranslucentSurfaceView显示透明位图

为了设置背景,我按以下方式使用了SurfaceHolder callbacks

surfaceView.getHolder().addCallback(new SurfaceHolder.Callback() {
            @Override
            public void surfaceCreated(SurfaceHolder holder) {
                Canvas canvas = holder.lockCanvas();
                if (canvas != null) {
                    canvas.drawRGB(255, 255, 255);
                    holder.unlockCanvasAndPost(canvas);
                }
            }

            @Override
            public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
                Canvas canvas = holder.lockCanvas();
                if (canvas != null) {
                    canvas.drawRGB(255, 255, 255);
                    holder.unlockCanvasAndPost(canvas);
                }
            }

            @Override
            public void surfaceDestroyed(SurfaceHolder holder) {
            }
        });

surfaceCreated()/surfaceChanged()我正在画一种颜色。

FrameLayout包含SurfaceView调整大小后,surfaceDestroyed()回调会调用,默认透明背景会显示给用户,直到surfaceCreated()再次调用。 < / p>

因此,用户暂时会看到透明背景。

我的问题是:

  1. SurfaceView是否使用Activity窗口颜色绘制默认位图?
  2. 我们可以更改color用于绘制默认位图的SurfaceView吗?

0 个答案:

没有答案