更新的 我发现只是SurfaceView的创建失败了。如果我在视图的末尾添加它 - addView(surface,params) - 它会立即使屏幕变黑,而不会执行动画代码段。我也尝试用XML创建它。结果相同。
我有一个RelativeLayout,并且在运行时,我正在尝试向其添加SurfaceView。添加了视图,但它并没有突破"正如文件所说。如果我更改顺序将其置于最顶层,我会看到黑屏。
这里是添加它的代码,在构造函数执行后不久就会调用它(在此版本中,视图是"在底部"我不知道&#t; t看到有什么事情发生了):
surface = new SurfaceView (getContext ());
int w = ViewGroup.LayoutParams.MATCH_PARENT;
int h = ViewGroup.LayoutParams.MATCH_PARENT;
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams (w, h);
addView (surface, 0, params);
而且,这里是我尝试显示内容的代码:
animator.addUpdateListener (new ValueAnimator.AnimatorUpdateListener()
{
public void onAnimationUpdate (ValueAnimator animation)
{
zoomScale = (float) animation.getAnimatedValue ();
Canvas canvas = surface.getHolder ().lockCanvas ();
canvas.scale (zoomScale, zoomScale);
canvas.drawBitmap (folderToZoom, 0, 0, null);
surface.getHolder ().unlockCanvasAndPost (canvas);
}
});
在后面的代码中放置一个断点,我可以看到SurfaceView的大小正确。此外,位图folderToZoom
有效。