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 < ; 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(()-()>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(()-()>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.