3

Androidアプリケーションのボタンで、フォームのスライドダウンビューをトリガーしたいと思います。画面の上部にビュー、画面の下部にリストを表示し、ボタンがクリックされたときに2つの間にスライドダウンフォームビューを表示したい。

ビューを表示するのに問題はありませんが、非表示から画面に表示されるまでアニメーション化できないようです。

これがどのように機能するかについてのアイデアはありますか?

4

2 に答える 2

8
public void doSlideDown(View view){
    RelativeLayout myView = (RelativeLayout)findViewById(R.id.my_view);
        addListingView.setVisibility(myView.VISIBLE);

        Animation slideDown = setLayoutAnim_slidedown(); 
        myView.startAnimation(slideDown);
}

public void doSlideUp(View view){
    RelativeLayout myView = (RelativeLayout)findViewById(R.id.my_view);

        Animation slideUp = setLayoutAnim_slideup(); 
        myView.startAnimation(slideUp);

}

public Animation setLayoutAnim_slidedown() {

        AnimationSet set = new AnimationSet(true);

        Animation animation = new TranslateAnimation(
                Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF,
                0.0f, Animation.RELATIVE_TO_SELF, -1.0f,
                Animation.RELATIVE_TO_SELF, 0.0f);
        animation.setDuration(800);
        animation.setAnimationListener(new AnimationListener() {

            @Override
            public void onAnimationStart(Animation animation) {
                // TODO Auto-generated method stub
                // MapContacts.this.mapviewgroup.setVisibility(View.VISIBLE);

            }

            @Override
            public void onAnimationRepeat(Animation animation) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onAnimationEnd(Animation animation) {
                // TODO Auto-generated method stub
                Log.d("LA","sliding down ended");

            }
        });
        set.addAnimation(animation);

        LayoutAnimationController controller = new LayoutAnimationController(
                set, 0.25f);


        return animation;
    }

public Animation setLayoutAnim_slideup() {

        AnimationSet set = new AnimationSet(true);

        Animation animation = new TranslateAnimation(
                Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF,
                0.0f, Animation.RELATIVE_TO_SELF, 0.0f,
                Animation.RELATIVE_TO_SELF, -1.0f);
        animation.setDuration(800);
        animation.setAnimationListener(new AnimationListener() {

            @Override
            public void onAnimationStart(Animation animation) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onAnimationRepeat(Animation animation) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onAnimationEnd(Animation animation) {
                // TODO Auto-generated method stub
                RelativeLayout bodyView = (RelativeLayout)findViewById(R.id.bodyView);
                RelativeLayout myView = (RelativeLayout)findViewById(R.id.my_view);
                addListingView.clearAnimation();
                bodyView.removeView(myView);
            }
        });
        set.addAnimation(animation);

        LayoutAnimationController controller = new LayoutAnimationController(
                set, 0.25f);

        return animation;

}
于 2012-03-25T09:20:18.707 に答える
7

これはあなたを助けるかもしれません:

于 2010-09-12T04:13:36.637 に答える