属性动画入门

来源:互联网 发布:国外在淘宝买东西 编辑:程序博客网 时间:2024/06/17 03:30
public class BaseSettingActivity extends Activity {    private GestureDetector gestureDetector;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //初始化一个手势识别器        gestureDetector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener(){            @Override            public boolean onFling(MotionEvent e1, MotionEvent e2,                    float velocityX, float velocityY) {                /**                 * e1 表示手指触摸屏幕的时候第一次按下去的位置                  * e2 表示手指离开屏幕的时候的位置                  * velocityX  屏幕x轴移动的速度 单位是px                 * velocityY 屏幕y轴移动的速度 单位也是px                 */                if (Math.abs(e1.getRawX()-e2.getRawX())<200) {                    //ToastUtils.showSafeToast(BaseSettingActivity.this, "滑动无效");                    System.out.println("滑动翻页无效");                    return true;                }                if (e1.getRawX()-e2.getRawX()>0) {                    System.out.println("下一页");                    //执行跳转到下一页的方法                    showNext();                    //过渡动画                    overridePendingTransition(R.anim.translate_show_next_in, R.anim.translate_show_next_out);                    return true;                }                if (e1.getRawX() - e2.getRawX() < 0) {                    System.out.println("上一页");                    //执行跳转到下一页的方法                    showPre();                    //过渡动画                    overridePendingTransition(R.anim.translate_show_pre_in, R.anim.translate_show_pre_out);                    return true;                }                return super.onFling(e1, e2, velocityX, velocityY);            }        });    }    /**     * 跳转到上一页     * 具体跳转到哪个页面在子类中实现     */    protected void showPre() {    }    /**     * 跳转到下一页     * 具体跳转到哪个页面在子类中实现     */    protected void showNext() {    }    /**     * 触摸事件,当没有这个方法的时候,触摸屏幕无效,其他的方法是建立在触摸事件之上的     */    @Override    public boolean onTouchEvent(MotionEvent event) {        gestureDetector.onTouchEvent(event);        return super.onTouchEvent(event);    }}

对应动画布局文件:

translate_show_next_in.xml:

<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android"    android:fromXDelta="100%p"     android:toXDelta="0"    android:fromYDelta="0"    android:toYDelta="0"    android:duration="300"></translate>
0 0