Android glsurfaceView - setScaleX()不工作/不拉伸视图

时间:2014-02-28 11:08:51

标签: android scale glsurfaceview glreadpixels

这是我最后的技术问题,我必须在我的应用程序上完成4个月的工作。

我会尽量简单,因为我需要指定解决方案。

我的问题:

简而言之:我需要拉伸我的glSurfaceView
我正在使用自定义glsurfaceView,它实现了OnMeasure方法来设置表面的实际宽度和高度 例如,我设置了1280和720的宽度和高度 然后我使用openGL并用glReadPixel()方法获取像素来编码视频
 到目前为止一切顺利。

我以这种方式添加视图:

this.addContentView(this.mRenderSurfaceView, BaseGameActivity.createSurfaceViewLayoutParams());  

何时:

  protected static LayoutParams createSurfaceViewLayoutParams() {
    final LayoutParams layoutParams = new LayoutParams(android.view.ViewGroup.LayoutParams.MATCH_PARENT, android.view.ViewGroup.LayoutParams.MATCH_PARENT);
    layoutParams.gravity = Gravity.CENTER;
    return layoutParams;
}

到目前为止我尝试了什么:

我希望glsurface是我在OnMeasure中设置的actucal像素, 这意味着glReadPixel()函数将获得与我设置的像素相同的像素, 但是,我想缩放这个表面,而不是改为actucal像素。

当我尝试这个时:

this.mRenderSurfaceView.setPivotX(0.0));
this.mRenderSurfaceView.setScaleX(2.0));

它只是将表面复制到屏幕中的另一个位置,没有任何比例。

我做错了什么?

请,我不需要改变这个表面的实际宽度和高度。我需要它 - 但我必须缩放它,用户会看到它大于我用onMeasure方法设置的真实像素

**我将表面编码为视频,因此宽度/高度的任何变化都会改变我在glReadpixel中得到的像素 - 所以只需缩放。

0 个答案:

没有答案