From edada7ca2b7c70c5459cbe488c1a16cc186f2bf0 Mon Sep 17 00:00:00 2001 From: Chih-Chung Chang Date: Tue, 22 May 2012 21:26:36 -0700 Subject: Put a black View in front of SurfaceView. This prevents SurfaceView from being transparent before the first draw. Bug: 6507478 Change-Id: I2170f23d4c9844bfc3854d6120f5e72cc0d591ca --- src/com/android/gallery3d/ui/GLRootView.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/com') diff --git a/src/com/android/gallery3d/ui/GLRootView.java b/src/com/android/gallery3d/ui/GLRootView.java index f78e6e6bf..99ed8cb42 100644 --- a/src/com/android/gallery3d/ui/GLRootView.java +++ b/src/com/android/gallery3d/ui/GLRootView.java @@ -25,7 +25,9 @@ import android.os.SystemClock; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.SurfaceHolder; +import android.view.View; +import com.android.gallery3d.R; import com.android.gallery3d.anim.CanvasAnimation; import com.android.gallery3d.common.Utils; import com.android.gallery3d.util.GalleryUtils; @@ -104,6 +106,7 @@ public class GLRootView extends GLSurfaceView private long mLastDrawFinishTime; private boolean mInDownState = false; + private boolean mFirstDraw = true; public GLRootView(Context context) { this(context, null); @@ -322,6 +325,20 @@ public class GLRootView extends GLSurfaceView mRenderLock.unlock(); } + // We put a black cover View in front of the SurfaceView and hide it + // after the first draw. This prevents the SurfaceView being transparent + // before the first draw. + if (mFirstDraw) { + mFirstDraw = false; + post(new Runnable() { + public void run() { + View root = getRootView(); + View cover = root.findViewById(R.id.gl_root_cover); + cover.setVisibility(GONE); + } + }); + } + if (DEBUG_PROFILE_SLOW_ONLY) { long t = System.nanoTime(); long durationInMs = (t - mLastDrawFinishTime) / 1000000; -- cgit v1.2.3