Joseph
Joseph

Reputation: 63

Can we embed button inside the min3d screen?

Is it possible to insert a button at the bottom of a working 3d animation done with Min3d framework in android. I do have a working 3d model car which is rotating. I want to put a button at the bottom of this working animation screen. Is it possible since i am not using any layout.Please explain me with an example so that i can replicate the same with my program.

Upvotes: 3

Views: 246

Answers (1)

Lakshmi Narayanan
Lakshmi Narayanan

Reputation: 5362

Yes. Rather, the procedure is to rather add the min3d framework to the layout, using glSurfaceView. The following cocde highlights how to achieve the same, assuming you have the other basics (such as loading the object ) covered. If not, links for the same is provided at the end of this brief.

    //import statements
    public class threedviewActivity extends RendererActivity implements View.OnClickListener,View.OnTouchListener{ 
    //onClick and onTouch in case you want to recognize both touch and click on the button

         //initialize the variables you require

         @Override
         public void onCreateSetContentView() {

              setContentView(R.layout.activity_example);
              RelativeLayout R1 = (RelativeLayout)this.findViewById(R.id.SceneHolder);
              R1.addView(_glSurfaceView); //adding the min3d view into the layout

              Button example_1 = (Button)this.findViewById(R.id.example_1);
              Button example_2 = (Button)this.findViewById(R.id.example_2);

              example_1.setOnTouchListener(this);
              example_2.setOnClickListener(this);

         }

         public boolean onTouch(View $v, MotionEvent event) {

              switch($v.getId())
              {
                   case R.id.example_1:
                        //Your actions and things to do
                   case R.id.example_2:
                        //your code

              }

         }

         public void onClick(View $v)
         {
              //similar to above      
         }

         public void initScene()
         {
              //initialize object and other activities related to the 3d container

         }

         @Override
         public void updateScene()
         {

              //update effects such as rotation on the object here, based on the button click or touch, etc.

         }

    }

And the xml file containing the layout/activity should look something like this :

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
>

     <Button
         //your data
         android:id="@+id/example_1"
     />

     <Button
         //your data
         android:id="@+id/example_2"
     />

     <RelativeLayout
         //nested layout which will hold the 3d container
         android:id="@+id/SceneHolder">

     </RelativeLayout>

  </RelativeLayout>

for understanding more about working in initScene() function, you can refer here and here.

You can also add extra effects, by playing around with the lighting properties, as stated here

The basic example for adding into the layout was taken from here . The same page also provides links to many examples in case you want to work with in future.

Upvotes: 0

Related Questions