Android Open Source - ExpandAnimator Expand Animator Sample Activity






From Project

Back to project page ExpandAnimator.

License

The source code is released under:

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUC...

If you think the Android project ExpandAnimator listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Created by sys1yagi on 12/02/10/*  w  w w .  ja v a2  s .c  o  m*/
 * Copyright (C) 2012 sys1yagi
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package jp.dip.sys1.yagi.android.expandanimator.sample;

import java.util.Random;

import jp.dip.sys1.yagi.android.expandanimator.ExpandAnimator;
import jp.dip.sys1.yagi.android.expandanimator.ExpandAnimatorManager;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.BounceInterpolator;
import android.widget.Button;
import android.widget.LinearLayout;

/**
 * ExpandAnimator??ExpandAnimatorManager???????????????????????
 * 
 * @author sys1yagi
 * 
 */
public class ExpandAnimatorSampleActivity extends Activity {
    private final static String TAG = ExpandAnimatorSampleActivity.class.getSimpleName();
    private ExpandAnimatorSampleActivity This(){
        return this;
    }
    private final static String CONTAINER_1 = "1";
    private final static String CONTAINER_2 = "2";
    private final static String CONTAINER_3 = "3";
    private final static String CONTAINER_4 = "4";
    private final static String CONTAINER_5 = "5";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // ???????????
        final ExpandAnimatorManager manager = new ExpandAnimatorManager();

        // ????????
        addExpandAnimator(R.id.trigger1, R.id.container1, CONTAINER_1, manager);
        initContainer2(manager);
        addExpandAnimator(R.id.trigger3, R.id.container3, CONTAINER_3, manager);
        addExpandAnimator(R.id.trigger4, R.id.container4, CONTAINER_4, manager);
        addExpandAnimator(R.id.trigger5, R.id.container5, CONTAINER_5, manager);
    }

    /**
     * 
     * @param manager
     */
    private void initContainer2(final ExpandAnimatorManager manager) {
        final Button trigger = (Button) findViewById(R.id.trigger2);
        trigger.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                if (manager.get(CONTAINER_2).isExpand()) {
                    manager.unexpand(CONTAINER_2);
                } else {
                    // ????????????????????????????????????????
                    manager.exclusiveExpand(CONTAINER_2);
                }
            }
        });

        View v = findViewById(R.id.container2);
        ExpandAnimator animator = new ExpandAnimator(v, new ExpandAnimator.OnAnimationListener() {
            @Override
            public void onExpanded(ExpandAnimator e) {
                trigger.setText("???????");
            }

            @Override
            public void onStartExpand(ExpandAnimator e) {
                trigger.setText("???????????");
            }

            @Override
            public void onStartUnexpand(ExpandAnimator e) {
                trigger.setText("???????????");
            }

            @Override
            public void onUnexpanded(ExpandAnimator e) {
                trigger.setText("???????");
            }
        });
        animator.setDuration(1200);
        animator.setInterpolator(new BounceInterpolator());
        manager.put(CONTAINER_2, animator);
        final Random random = new Random(System.currentTimeMillis());
        final int margin = 155;
        final LinearLayout container = (LinearLayout)findViewById(R.id.container2_1);
        findViewById(R.id.add).setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                View view = new View(This());
                int c = Color.rgb(random.nextInt(255-margin)+margin,
                        random.nextInt(255-margin)+margin,
                        random.nextInt(255-margin)+margin
                        );
                view.setBackgroundColor(c);
                container.addView(view, 0, new LayoutParams(LayoutParams.FILL_PARENT, 100));
                manager.adjustSizeImmediately(CONTAINER_2);
            }
        });
        findViewById(R.id.remove).setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                if(container.getChildCount() > 0){
                    container.removeViewAt(0);
                    manager.adjustSizeImmediately(CONTAINER_2);
                }
            }
        });
    }

    /**
     * ExpandAnimator?ExpandAnimatorManager???????????????
     * 
     * @param triggerId
     *            ???????????????View???id???????????????????????View??????????????????????????????????????
     * @param containerId
     *            ??????????????View?????????????????
     * @param key
     *            ExpandAnimatorManager???put???????????????????????????
     * @param manager
     *            ExpandAnimator???????ExpandAnimatorManager?????????????????
     */
    private void addExpandAnimator(int triggerId, int containerId, final String key, final ExpandAnimatorManager manager) {
        manager.put(key, createAnimator(findViewById(containerId)));
        findViewById(triggerId).setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                if (manager.get(key).isExpand()) {
                    manager.unexpand(key);
                } else {
                    manager.expand(key);
                    // ????????????????????????????????????????
                    // manager.exclusiveExpand(key);
                }
            }
        });
    }

    /**
     * ExpandAnimator???????????????expand/unexpand????????????????????????????????????????????????????
     * 
     * @param v
     *            expand/unexpand????????????View?????????????????
     * @return ??????????ExpandAnimator
     */
    private ExpandAnimator createAnimator(View v) {
        ExpandAnimator animator = new ExpandAnimator(v, new ExpandAnimator.OnAnimationListener() {
            @Override
            public void onExpanded(ExpandAnimator e) {

            }

            @Override
            public void onStartExpand(ExpandAnimator e) {

            }

            @Override
            public void onStartUnexpand(ExpandAnimator e) {

            }

            @Override
            public void onUnexpanded(ExpandAnimator e) {

            }
        });
        animator.setDuration(700);
        animator.setInterpolator(new AccelerateDecelerateInterpolator());
        return animator;
    }

}




Java Source Code List

jp.dip.sys1.yagi.android.expandanimator.ExpandAnimatorManager.java
jp.dip.sys1.yagi.android.expandanimator.ExpandAnimator.java
jp.dip.sys1.yagi.android.expandanimator.sample.ExpandAnimatorSampleActivity.java