3d Cube Animation in Android

后端 未结 1 1463
天命终不由人
天命终不由人 2020-12-14 04:43

I want 3d cube transition change view or activity in android. I am searching google lot of ways but, could not find any useful resource in android. I have found some apps in

相关标签:
1条回答
  • 2020-12-14 05:44

    Import this project and mark as Library in project property and add it to your project.

    Create your activity like this:

    package com.example.testcube;
    
    
    import android.app.Activity;
    import android.graphics.Color;
    import android.os.Bundle;
    import android.support.v4.view.PagerAdapter;
    import android.view.Gravity;
    import android.view.View;
    import android.view.ViewGroup;
    import android.view.ViewGroup.LayoutParams;
    import android.view.Window;
    import android.view.WindowManager;
    import android.widget.TextView;
    
    import com.jfeinstein.jazzyviewpager.JazzyViewPager;
    import com.jfeinstein.jazzyviewpager.JazzyViewPager.TransitionEffect;
    
    public class MainActivity extends Activity {
    
        private JazzyViewPager vpage;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            // Set window fullscreen and remove title bar, and force landscape orientation
            this.requestWindowFeature(Window.FEATURE_NO_TITLE);
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
            setContentView(R.layout.activity_main);
            setupJazziness(TransitionEffect.CubeOut);
        }
    
        private void setupJazziness(TransitionEffect effect) {
            vpage = (JazzyViewPager) findViewById(R.id.jazzy_pager);
            vpage.setTransitionEffect(effect);
            vpage.setAdapter(new MainAdapter());
            vpage.setPageMargin(0);
        }
    
        private class MainAdapter extends PagerAdapter {
            @Override
            public Object instantiateItem(ViewGroup container, final int position) {
                TextView text = new TextView(MainActivity.this);
                text.setGravity(Gravity.CENTER);
                text.setTextSize(30);
                text.setTextColor(Color.WHITE);
                text.setText("Page " + position);
                text.setPadding(30, 30, 30, 30);
                int bg = Color.rgb((int) Math.floor(Math.random()*128)+64, 
                        (int) Math.floor(Math.random()*128)+64,
                        (int) Math.floor(Math.random()*128)+64);
                text.setBackgroundColor(bg);
                container.addView(text, LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
                vpage.setObjectForPosition(text, position);
                return text;
            }
            @Override
            public void destroyItem(ViewGroup container, int position, Object obj) {
                container.removeView((View) obj);
            }
            @Override
            public int getCount() {
                return 10;
            }
            @Override
            public boolean isViewFromObject(View arg0, Object arg1) {
                return arg0 == arg1;
            }       
        }
    
    }
    

    And in your activity XML should be

    <com.jfeinstein.jazzyviewpager.JazzyViewPager
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/jazzy_pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
    

    enter image description here

    0 讨论(0)
提交回复
热议问题