android:创建SurfaceView并使用addView()添加

时间:2018-05-03 22:30:44

标签: android surfaceview

更新的 我发现只是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有效。

0 个答案:

没有答案