public OrigamiExample(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); // Inflate the layout. LayoutInflater inflater = LayoutInflater.from(context); ViewGroup root = (ViewGroup) inflater.inflate(R.layout.origami_example, this, false); addView(root); // Listen for clicks on the root view. root.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { handleClick(v); } }); // Get references to our views. mPhotoGrid = root.findViewById(R.id.grid); mSelectedPhoto = root.findViewById(R.id.selection); mFeedbackBar = root.findViewById(R.id.feedback); mSpringConfiguratorView = (SpringConfiguratorView) root.findViewById(R.id.spring_configurator); // Setup the Spring by creating a SpringSystem adding a SimpleListener that renders the // animation whenever the spring is updated. mSpring = SpringSystem .create() .createSpring() .setSpringConfig(ORIGAMI_SPRING_CONFIG) .addListener(new SimpleSpringListener() { @Override public void onSpringUpdate(Spring spring) { // Just tell the UI to update based on the springs current state. render(); } }); // Here we just wait until the first layout pass finishes and call our render method to update // the animation to the initial resting state of the spring. mPhotoGrid.getViewTreeObserver().addOnGlobalLayoutListener( new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { render(); mPhotoGrid.getViewTreeObserver().removeOnGlobalLayoutListener(this); } }); /** Optional - Live Spring Tuning **/ // Put our config into a registry. This is optional, but it gives you the ability to live tune // the spring using the SpringConfiguratorView which will show up at the bottom of the screen. SpringConfigRegistry.getInstance().addSpringConfig(ORIGAMI_SPRING_CONFIG, "origami animation spring"); // Tell the SpringConfiguratorView that we've updated the registry to allow you to live tune the animation spring. mSpringConfiguratorView.refreshSpringConfigurations(); // Uncomment this line to actually show the SpringConfiguratorView allowing you to live tune // the Spring constants as you manipulate the UI. mSpringConfiguratorView.setVisibility(View.VISIBLE); }
public OrigamiExample(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); // Inflate the layout. LayoutInflater inflater = LayoutInflater.from(context); ViewGroup root = (ViewGroup) inflater.inflate(R.layout.origami_example, this, false); addView(root); // Listen for clicks on the root view. root.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { handleClick(v); } }); // Get references to our views. mPhotoGrid = root.findViewById(R.id.grid); mSelectedPhoto = root.findViewById(R.id.selection); mFeedbackBar = root.findViewById(R.id.feedback); mSpringConfiguratorView = (SpringConfiguratorView) root.findViewById(R.id.spring_configurator); // Setup the Spring by creating a SpringSystem adding a SimpleListener that renders the // animation whenever the spring is updated. mSpring = SpringSystem .create() .createSpring() .setSpringConfig(ORIGAMI_SPRING_CONFIG) .addListener(new SimpleSpringListener() { @Override public void onSpringUpdate(Spring spring) { // Just tell the UI to update based on the springs current state. render(); } }); // Here we just wait until the first layout pass finishes and call our render method to update // the animation to the initial resting state of the spring. mPhotoGrid.getViewTreeObserver().addOnGlobalLayoutListener( new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { render(); mPhotoGrid.getViewTreeObserver().removeGlobalOnLayoutListener(this); } }); /** Optional - Live Spring Tuning **/ // Put our config into a registry. This is optional, but it gives you the ability to live tune // the spring using the SpringConfiguratorView which will show up at the bottom of the screen. SpringConfigRegistry.getInstance().addSpringConfig(ORIGAMI_SPRING_CONFIG, "origami animation spring"); // Tell the SpringConfiguratorView that we've updated the registry to allow you to live tune the animation spring. mSpringConfiguratorView.refreshSpringConfigurations(); // Uncomment this line to actually show the SpringConfiguratorView allowing you to live tune // the Spring constants as you manipulate the UI. mSpringConfiguratorView.setVisibility(View.VISIBLE); }