如何在openGl 3d立方体上设置布局?

时间:2013-03-21 16:55:52

标签: android opengl-es

我想在3d立方体的一侧为布局xml文件充气,为下一个另一个布局xml,为下一个等等。

我只需要在3d立方体上放置gridView并在gridview中放置一些按钮,图像,文本。

是否可能以及如何?

2 个答案:

答案 0 :(得分:0)

有两种方法可以实现这一目标:

  1. 创建Camera并为多维数据集的不同边创建转换 Here是如何使用相机对象来实现视图的3d效果的示例 这种方式没有明确使用OpenGL,但它应该在较新版本的Android上进行硬件加速。
  2. 使用布局的draw() - 方法绘制到自定义Canvas,并使用画布内容制作OpenGL纹理:

    Bitmap layoutBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
    Canvas tmpCanvas = new Canvas(layoutBitmap);
    //Load layoutBitmap to a texture and recycle it.
    

    然后用新纹理绘制你的立方体。

  3. 不幸的是,这些解决方案不允许布局上的任何事件(可能是第一个选项,但我不这么认为)所以如果你需要能够点击或执行其他一些操作,这将无效。

答案 1 :(得分:0)

我用它来从布局创建位图图像,也许可以帮到你。

private Bitmap imageXML(View view) {

        view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
                View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
        view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());

        final Bitmap bp = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
        bp.eraseColor(Color.WHITE);
        Canvas canvas = new Canvas(bp);
        view.draw(canvas);

        return bp;
    }