0

3Dキューブの一方の側、次の側の別のレイアウトxml、次の別のレイアウトxmlファイルなどを膨らませたいです。

3Dキューブの横にgridViewを配置し、gridviewにいくつかのボタン、画像、テキストを配置する必要があります。

それは可能ですか、そしてどのように?

4

2 に答える 2

0

これを実現するには、次の 2 つの方法があります。

  1. を作成しCamera、キューブのさまざまな側面の変換を作成します。
    以下は、カメラ オブジェクトを使用してビューで 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.
    

    次に、新しいテクスチャで立方体を描画します。

残念ながら、これらのソリューションはレイアウト上でのイベントを許可しないため (おそらく最初のオプションですが、私はそうは思いません)、クリックしたり他のアクションを実行したりできるようにする必要がある場合、これは機能しません。

于 2013-03-21T17:24:15.087 に答える
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;
    }
于 2016-09-23T14:06:16.770 に答える