Hi.
When I apply some animation to the view, which is out of window, the
animation not start immediately.
And then, I scroll the screen to show the animation target view, the
animation will start.
I hope to the animation will start immediately when it apply. Any
ideas?
Bellow is sample code. Thank you.

public class AnimationValidationActivity extends Activity {
    private ViewSwitcher _viewSwitcher;
    private Button _button;

    /**
     * utility method for animation
     */
    private Animation buildTranslateAnimation( float fromXDelta ,
float toXDelta , float fromYDelta , float toYDelta ) {
        Animation ret = new TranslateAnimation( fromXDelta ,
toXDelta , fromYDelta , toYDelta );
        ret.setDuration( 1000 );

        return ret;
    }

    /**
     * build view in place of layout.xml
     */
    private View buildView() {
        ScrollView ret = new ScrollView( this );
        ret.setLayoutParams( new
LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT ,
                LinearLayout.LayoutParams.WRAP_CONTENT ) );

        LinearLayout parent = new LinearLayout( this );
        parent.setLayoutParams( new
LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT ,
                LinearLayout.LayoutParams.WRAP_CONTENT ) );
        parent.setOrientation( LinearLayout.VERTICAL );
        ret.addView( parent );

        _viewSwitcher = new ViewSwitcher( this );
        _viewSwitcher.setLayoutParams( new
LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT ,
100 ) );
        parent.addView( _viewSwitcher );

        View spacer = new View( this );
        spacer.setLayoutParams( new
LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT ,
getWindow()
                .getWindowManager().getDefaultDisplay().getHeight() ) );
        parent.addView( spacer );

        _button = new Button( this );
        _button.setText( "button" );
        parent.addView( _button );

        return ret;
    }

    @Override
    public void onCreate( Bundle savedInstanceState ) {
        super.onCreate( savedInstanceState );
        setContentView( buildView() );

        _viewSwitcher.setFactory( new ViewSwitcher.ViewFactory() {
            @Override
            public View makeView() {
                TextView view = new
TextView( AnimationValidationActivity.this );
                view.setLayoutParams( new
ViewSwitcher.LayoutParams( ViewSwitcher.LayoutParams.FILL_PARENT ,
                        ViewSwitcher.LayoutParams.FILL_PARENT ) );
                view.setBackgroundColor( 0xffffffff );

                view.setText( "foobar" );

                return view;
            }
        } );

        _button.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick( View v ) {
 
_viewSwitcher.setInAnimation( buildTranslateAnimation( _viewSwitcher.getWidth() 
,
0 , 0 , 0 ) );
 
_viewSwitcher.setOutAnimation( buildTranslateAnimation( 0 , -
_viewSwitcher.getWidth() , 0 , 0 ) );

                int color = new Random().nextInt();
 
_viewSwitcher.getNextView().setBackgroundColor( 0xff000000 | color &
0xffffff );
                _viewSwitcher.showNext();
            }
        } );
    }
}

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to