SoFunction
Updated on 2025-03-01

Android implements ViewFlipper picture animation sliding

The function I implement for you today is the effect of image sliding similar to ViewFlipper for your reference. The specific content is as follows

Now just upload the code!

Code example:

1. XML layout file

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:andro
    xmlns:app="/apk/res-auto"
    xmlns:tools="/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" tools:context=".android20_shou.MainActivity">
    <ViewFlipper
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:
        ></ViewFlipper>
</LinearLayout>

2. Activity class

package .android20_shou;
 
import .;
import .;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
 
public class MainActivity extends AppCompatActivity{
 
    private ViewFlipper vf_main_image;
    private int images[]={.s10,.s1,.s7};
    private GestureDetector ges;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        (savedInstanceState);
        setContentView(.activity_main);
        //Get the control        vf_main_image = (ViewFlipper) findViewById(.vf_main_image);
        for (int i = 0; i &lt; ; i++) {
            ImageView iv=new ImageView(this);
            (images[i]);
            //Inspect the image zone ViewFlipper            vf_main_image.addView(iv);
        }
 
        //Instantiate a gesture detector class        ges = new GestureDetector(this, new () {
            @Override
            /**
              * Press
 */
            public boolean onDown(MotionEvent e) {
                return false;
            }
 
            /**
 * Pressed but not lifted
 * @param e
 */
            @Override
            public void onShowPress(MotionEvent e) {
 
            }
 
            /**
              * Press Short Press
 * @param e
 * @return
 */
            @Override
            public boolean onSingleTapUp(MotionEvent e) {
                return false;
            }
 
            /**
 * Slide
 * @param e1
 * @param e2
 * @param distanceX
 * @param distanceY
 * @return
 */
            @Override
            public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
                return false;
            }
 
            /**
                * Long press
 * @param e
 */
            @Override
            public void onLongPress(MotionEvent e) {
 
            }
 
            /**
 * Drag
              * @param e1    Start point
              * @param e2    End point
              * @param velocityX x value
              * @param velocityY    Y value
 * @return
 */
            @Override
            public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
                if(()-()&gt;200){
                    //Show next picture                    vf_main_image.showNext();
                    //Set out animation                    vf_main_image.setOutAnimation(,.left_out);
                    //Set incoming animation                    vf_main_image.setInAnimation(,.right_in);
                }else if(()-()&gt;200){
                    //Show the previous one                    vf_main_image.showPrevious();
                    //Set out animation                    vf_main_image.setOutAnimation(,.right_out);
                    //Set incoming animation                    vf_main_image.setInAnimation(,.left_in);
                }
                return false;
            }
        });
 
    }
 
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        //Let the touch continue to be passed        return (event);
    }
}

3. Four animations for entering and going out

left_out:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:andro
    android:duration="1000"
    >
    <translate
        android:fromXDelta="0"
        android:toXDelta="-100%p"
        android:fromYDelta="0"
        android:toYDelta="-100%p"
        ></translate>
 
</set>

right_in:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:andro
    android:duration="1000"
    >
    <translate
        android:fromXDelta="100%p"
        android:toXDelta="0"
        android:fromYDelta="-100%p"
        android:toYDelta="0"
        ></translate>
 
</set>

right_out:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:andro
    android:duration="1000"
    >
    <translate
        android:fromXDelta="0"
        android:toXDelta="100%p"
        android:fromYDelta="0"
        android:toYDelta="-100%p"
        ></translate>
 
</set>

left_in:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:andro
    android:duration="1000"
    >
    <translate
        android:fromXDelta="-100%p"
        android:toXDelta="0"
        android:fromYDelta="-100%p"
        android:toYDelta="0"
        ></translate>
 
</set>

The above is all the content of this article. I hope it will be helpful to everyone's study and I hope everyone will support me more.